/src/test/java/com/alibaba/json/bvt/support/spring/security/DefaultSavedRequestTest.java
https://github.com/alibaba/fastjson · Java · 156 lines · 116 code · 34 blank · 6 comment · 0 complexity · f3f39c4a413cc4771ec758227820c1af MD5 · raw file
- package com.alibaba.json.bvt.support.spring.security;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.parser.Feature;
- import com.alibaba.fastjson.parser.ParserConfig;
- import com.alibaba.fastjson.serializer.SerializerFeature;
- import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
- import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
- import com.alibaba.json.bvt.serializer.JavaBeanSerializerTest;
- import junit.framework.TestCase;
- import org.springframework.mock.web.MockHttpServletRequest;
- import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
- import org.springframework.security.core.authority.SimpleGrantedAuthority;
- import org.springframework.security.core.context.SecurityContextImpl;
- import org.springframework.security.core.userdetails.User;
- import org.springframework.security.web.PortResolver;
- import org.springframework.security.web.authentication.WebAuthenticationDetails;
- import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
- import org.springframework.security.web.csrf.DefaultCsrfToken;
- import org.springframework.security.web.savedrequest.DefaultSavedRequest;
- import org.springframework.security.web.savedrequest.SavedCookie;
- import javax.servlet.ServletRequest;
- import javax.servlet.http.Cookie;
- import java.lang.reflect.Field;
- /**
- * Created by wenshao on 11/08/2017.
- */
- public class DefaultSavedRequestTest extends TestCase {
- ParserConfig config;
- protected void setUp() throws Exception {
- Field field = GenericFastJsonRedisSerializer.class.getDeclaredField("defaultRedisConfig");
- field.setAccessible(true);
- config = (ParserConfig) field.get(null);
- config.addAccept("org.springframework.security.web.savedrequest.DefaultSavedRequest");
- config.addAccept("org.springframework.security.core.context.SecurityContextImpl");
- config.addAccept("org.springframework.security.core.userdetails.User");
- config.addAccept("org.springframework.security.authentication.UsernamePasswordAuthenticationToken");
- config.addAccept("org.springframework.security.core.authority.SimpleGrantedAuthority");
- config.addAccept("org.springframework.security.web.authentication.WebAuthenticationDetails");
- }
- public void test_for_issue() throws Exception {
- MockHttpServletRequest mockReq = new MockHttpServletRequest();
- DefaultSavedRequest request = new DefaultSavedRequest(mockReq, new PortResolver() {
- public int getServerPort(ServletRequest servletRequest) {
- return 0;
- }
- });
- String str = JSON.toJSONString(request, SerializerFeature.WriteClassName);
- // System.out.println(str);
- JSON.parseObject(str, Object.class, config, Feature.SupportAutoType);
- JSON.parseObject(str);
- }
- public void test_cookie() throws Exception {
- String json = "{\"name\":\"xx\",\"value\":\"xx\",\"comment\":\"xx\",\"domain\":\"xx\"}";
- SavedCookie cookie = JSON.parseObject(json, SavedCookie.class);
- assertEquals("xx", cookie.getName());
- assertEquals("{\"comment\":\"xx\",\"cookie\":{\"comment\":\"xx\",\"domain\":\"xx\",\"httpOnly\":false,\"maxAge\":0,\"name\":\"xx\",\"secure\":false,\"value\":\"xx\",\"version\":0},\"domain\":\"xx\",\"maxAge\":0,\"name\":\"xx\",\"secure\":false,\"value\":\"xx\",\"version\":0}", JSON.toJSONString(cookie));
- }
- public void test_0() throws Exception {
- DefaultCsrfToken token = JSON.parseObject("{\"token\":\"xxx\",\"parameterName\":\"222\",\"headerName\":\"hhh\"}", DefaultCsrfToken.class);
- assertEquals("hhh", token.getHeaderName());
- assertEquals("222", token.getParameterName());
- assertEquals("xxx", token.getToken());
- assertEquals("{\"headerName\":\"hhh\",\"parameterName\":\"222\",\"token\":\"xxx\"}", JSON.toJSONString(token));
- }
- public void test_http_cookie() throws Exception {
- Cookie cookie = new Cookie("cna", "h8a2EO57uEgCAXyg1TgBBFK");
- cookie.setMaxAge(10);
- String json = JSON.toJSONString(cookie);
- Cookie cookie1 = JSON.parseObject(json, Cookie.class);
- assertEquals(cookie.getName(), cookie1.getName());
- assertEquals(cookie.getValue(), cookie1.getValue());
- assertEquals(cookie.getMaxAge(), cookie1.getMaxAge());
- //System.out.println(json);
- }
- public void test_PreAuthenticatedAuthenticationToken() throws Exception {
- PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken("ppp", "cccc");
- String json = JSON.toJSONString(token);
- System.out.println(json);
- PreAuthenticatedAuthenticationToken token1 = JSON.parseObject(json, PreAuthenticatedAuthenticationToken.class);
- assertEquals("ppp", token1.getPrincipal());
- assertEquals("cccc", token1.getCredentials());
- }
- public void test_WebAuthenticationDetails() throws Exception {
- WebAuthenticationDetails details = JSON.parseObject("{\"remoteAddress\":\"rrr\",\"sessionId\":\"ssss\"}", WebAuthenticationDetails.class);
- assertEquals("rrr", details.getRemoteAddress());
- assertEquals("ssss", details.getSessionId());
- }
- public void test_SecurityContextImpl() throws Exception {
- String json = "{\"@type\":\"org.springframework.security.core.context.SecurityContextImpl\"}";
- JSON.parseObject(json, Object.class, Feature.SupportAutoType);
- JSON.parseObject(json, Object.class, config);
- }
- public void test_UsernamePasswordAuthenticationToken() throws Exception {
- String json = "{\"@type\":\"org.springframework.security.authentication.UsernamePasswordAuthenticationToken\",\"principal\":\"pp\"}";
- UsernamePasswordAuthenticationToken token = (UsernamePasswordAuthenticationToken)JSON.parseObject(json, Object.class, Feature.SupportAutoType);
- UsernamePasswordAuthenticationToken token1 = (UsernamePasswordAuthenticationToken) JSON.parseObject(json, Object.class, config);
- assertEquals("pp", token.getPrincipal());
- assertEquals("pp", token1.getPrincipal());
- }
- public void test_SimpleGrantedAuthority() throws Exception {
- String json = "{\"@type\":\"org.springframework.security.core.authority.SimpleGrantedAuthority\",\"authority\":\"xx\"}";
- SimpleGrantedAuthority token = (SimpleGrantedAuthority)JSON.parseObject(json, Object.class, Feature.SupportAutoType);
- SimpleGrantedAuthority token1 = (SimpleGrantedAuthority) JSON.parseObject(json, Object.class, config);
- assertEquals("xx", token.getAuthority());
- assertEquals("xx", token1.getAuthority());
- assertEquals("{\"authority\":\"xx\"}", JSON.toJSONString(token));
- }
- public void test_User() throws Exception {
- String json = "{\"@type\":\"org.springframework.security.core.userdetails.User\",\"username\":\"xx\",\"authorities\":[]}";
- User token = (User)JSON.parseObject(json, Object.class);
- User token1 = (User) JSON.parseObject(json, Object.class, config, Feature.SupportAutoType);
- assertEquals("xx", token.getUsername());
- assertEquals("xx", token1.getUsername());
- assertEquals("", token.getPassword());
- assertEquals("", token1.getPassword());
- }
- public void test_SecurityContextImpl_x() throws Exception {
- String json = "{\"@type\":\"org.springframework.security.core.context.SecurityContextImpl\",\"authentication\":{\"@type\":\"org.springframework.security.authentication.UsernamePasswordAuthenticationToken\",\"authenticated\":true,\"authorities\":[{\"@type\":\"org.springframework.security.core.authority.SimpleGrantedAuthority\",\"authority\":\"ROLE_ADMIN\"}],\"details\":{\"@type\":\"org.springframework.security.web.authentication.WebAuthenticationDetails\",\"remoteAddress\":\"0:0:0:0:0:0:0:1\",\"sessionId\":\"35dbb2c4-971c-4624-bd89-2e002180a2ca\"},\"name\":\"admin\",\"principal\":{\"@type\":\"org.springframework.security.core.userdetails.User\",\"accountNonExpired\":true,\"accountNonLocked\":true,\"authorities\":[{\"$ref\":\"$.authentication.authorities[0]\"}],\"credentialsNonExpired\":true,\"enabled\":true,\"username\":\"admin\"}}}";
- SecurityContextImpl context = (SecurityContextImpl) JSON.parseObject(json, Object.class, config, Feature.SupportAutoType);
- }
- //
- }