⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tokenbasedremembermeservicestests.java

📁 acegi构造安全的java系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }    public void testAutoLoginIfSignatureBlocksDoesNotMatchExpectedValue()        throws Exception {        UserDetails user = new User("someone", "password", true, true, true, true,                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ABC")});        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        services.setKey("key");        services.setUserDetailsService(new MockAuthenticationDao(user, false));        //services.afterPropertiesSet();        Cookie cookie = new Cookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY,                generateCorrectCookieContentForToken(System.currentTimeMillis() + 1000000, "someone", "password",                    "WRONG_KEY"));        MockHttpServletRequest request = new MockHttpServletRequest();        request.setCookies(new Cookie[] {cookie});        MockHttpServletResponse response = new MockHttpServletResponse();        Authentication result = services.autoLogin(request, response);        assertNull(result);        Cookie returnedCookie = response.getCookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY);        assertNotNull(returnedCookie);        assertEquals(0, returnedCookie.getMaxAge());    }    public void testAutoLoginIfTokenDoesNotContainANumberInCookieValue()        throws Exception {        UserDetails user = new User("someone", "password", true, true, true, true,                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ABC")});        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        services.setKey("key");        services.setUserDetailsService(new MockAuthenticationDao(user, false));        //services.afterPropertiesSet();        Cookie cookie = new Cookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY,                new String(Base64.encodeBase64("username:NOT_A_NUMBER:signature".getBytes())));        MockHttpServletRequest request = new MockHttpServletRequest();        request.setCookies(new Cookie[] {cookie});        MockHttpServletResponse response = new MockHttpServletResponse();        Authentication result = services.autoLogin(request, response);        assertNull(result);        Cookie returnedCookie = response.getCookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY);        assertNotNull(returnedCookie);        assertEquals(0, returnedCookie.getMaxAge());    }    public void testAutoLoginIfUserNotFound() throws Exception {        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        services.setKey("key");        services.setUserDetailsService(new MockAuthenticationDao(null, true));        //services.afterPropertiesSet();        Cookie cookie = new Cookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY,                generateCorrectCookieContentForToken(System.currentTimeMillis() + 1000000, "someone", "password", "key"));        MockHttpServletRequest request = new MockHttpServletRequest();        request.setCookies(new Cookie[] {cookie});        MockHttpServletResponse response = new MockHttpServletResponse();        Authentication result = services.autoLogin(request, response);        assertNull(result);        Cookie returnedCookie = response.getCookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY);        assertNotNull(returnedCookie);        assertEquals(0, returnedCookie.getMaxAge());    }    public void testAutoLoginWithValidToken() throws Exception {        UserDetails user = new User("someone", "password", true, true, true, true,                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ABC")});        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        services.setKey("key");        services.setUserDetailsService(new MockAuthenticationDao(user, false));       // services.afterPropertiesSet();        Cookie cookie = new Cookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY,                generateCorrectCookieContentForToken(System.currentTimeMillis() + 1000000, "someone", "password", "key"));        MockHttpServletRequest request = new MockHttpServletRequest();        request.setCookies(new Cookie[] {cookie});        MockHttpServletResponse response = new MockHttpServletResponse();        Authentication result = services.autoLogin(request, response);        assertNotNull(result);        UserDetails resultingUserDetails = (UserDetails) result.getPrincipal();        assertEquals(user, resultingUserDetails);    }    public void testGettersSetters() {        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        services.setUserDetailsService(new MockAuthenticationDao(null, false));        assertTrue(services.getUserDetailsService() != null);        services.setKey("d");        assertEquals("d", services.getKey());        assertEquals(TokenBasedRememberMeServices.DEFAULT_PARAMETER, services.getParameter());        services.setParameter("some_param");        assertEquals("some_param", services.getParameter());        services.setTokenValiditySeconds(12);        assertEquals(12, services.getTokenValiditySeconds());    }    public void testLoginFail() {        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        MockHttpServletRequest request = new MockHttpServletRequest();        request.setRequestURI("fv");        MockHttpServletResponse response = new MockHttpServletResponse();        services.loginFail(request, response);        Cookie cookie = response.getCookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY);        assertNotNull(cookie);        assertEquals(0, cookie.getMaxAge());    }    public void testLoginSuccessIgnoredIfParameterNotSetOrFalse() {        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        MockHttpServletRequest request = new MockHttpServletRequest();        request.setRequestURI("d");        request.addParameter(TokenBasedRememberMeServices.DEFAULT_PARAMETER, "false");        MockHttpServletResponse response = new MockHttpServletResponse();        services.loginSuccess(request, response,            new TestingAuthenticationToken("someone", "password",                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ABC")}));        Cookie cookie = response.getCookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY);        assertNull(cookie);    }    public void testLoginSuccessNormalWithNonUserDetailsBasedPrincipal() {        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        MockHttpServletRequest request = new MockHttpServletRequest();        request.setRequestURI("d");        request.addParameter(TokenBasedRememberMeServices.DEFAULT_PARAMETER, "true");        MockHttpServletResponse response = new MockHttpServletResponse();        services.loginSuccess(request, response,            new TestingAuthenticationToken("someone", "password",                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ABC")}));        Cookie cookie = response.getCookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY);        assertNotNull(cookie);        assertEquals(services.getTokenValiditySeconds(), cookie.getMaxAge());        assertTrue(Base64.isArrayByteBase64(cookie.getValue().getBytes()));        assertTrue(new Date().before(new Date(determineExpiryTimeFromBased64EncodedToken(cookie.getValue()))));    }    public void testLoginSuccessNormalWithUserDetailsBasedPrincipal() {        TokenBasedRememberMeServices services = new TokenBasedRememberMeServices();        MockHttpServletRequest request = new MockHttpServletRequest();        request.setRequestURI("d");        request.addParameter(TokenBasedRememberMeServices.DEFAULT_PARAMETER, "true");        MockHttpServletResponse response = new MockHttpServletResponse();        UserDetails user = new User("someone", "password", true, true, true, true,                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ABC")});        services.loginSuccess(request, response,            new TestingAuthenticationToken(user, "ignored",                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ABC")}));        Cookie cookie = response.getCookie(TokenBasedRememberMeServices.ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY);        assertNotNull(cookie);        assertEquals(services.getTokenValiditySeconds(), cookie.getMaxAge());        assertTrue(Base64.isArrayByteBase64(cookie.getValue().getBytes()));        assertTrue(new Date().before(new Date(determineExpiryTimeFromBased64EncodedToken(cookie.getValue()))));    }    //~ Inner Classes ==================================================================================================    private class MockAuthenticationDao implements UserDetailsService {        private UserDetails toReturn;        private boolean throwException;        public MockAuthenticationDao(UserDetails toReturn, boolean throwException) {            this.toReturn = toReturn;            this.throwException = throwException;        }        public UserDetails loadUserByUsername(String username)            throws UsernameNotFoundException, DataAccessException {            if (throwException) {                throw new UsernameNotFoundException("as requested by mock");            }            return toReturn;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -