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

📄 securitycontextloginmoduletests.java

📁 acegi构造安全的java系统
💻 JAVA
字号:
/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.acegisecurity.providers.jaas;import junit.framework.TestCase;import org.acegisecurity.context.SecurityContextHolder;import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;import java.util.HashMap;import java.util.HashSet;import java.util.Map;import javax.security.auth.Subject;import javax.security.auth.login.LoginException;/** * Tests SecurityContextLoginModule * * @author Ray Krueger */public class SecurityContextLoginModuleTests extends TestCase {    //~ Instance fields ================================================================================================    private SecurityContextLoginModule module = null;    private Subject subject = new Subject(false, new HashSet(), new HashSet(), new HashSet());    private UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken("principal",            "credentials");    //~ Methods ========================================================================================================    protected void setUp() throws Exception {        module = new SecurityContextLoginModule();        module.initialize(subject, null, null, null);        SecurityContextHolder.clearContext();    }    protected void tearDown() throws Exception {        SecurityContextHolder.clearContext();        module = null;    }    public void testAbort() throws Exception {        assertFalse("Should return false, no auth is set", module.abort());        SecurityContextHolder.getContext().setAuthentication(auth);        module.login();        module.commit();        assertTrue(module.abort());    }    public void testLoginException() throws Exception {        try {            module.login();            fail("LoginException expected, there is no Authentication in the SecurityContext");        } catch (LoginException e) {}    }    public void testLoginSuccess() throws Exception {        SecurityContextHolder.getContext().setAuthentication(auth);        assertTrue("Login should succeed, there is an authentication set", module.login());        assertTrue("The authentication is not null, this should return true", module.commit());        assertTrue("Principals should contain the authentication", subject.getPrincipals().contains(auth));    }    public void testLogout() throws Exception {        SecurityContextHolder.getContext().setAuthentication(auth);        module.login();        assertTrue("Should return true as it succeeds", module.logout());        assertEquals("Authentication should be null", null, module.getAuthentication());        assertFalse("Principals should not contain the authentication after logout",            subject.getPrincipals().contains(auth));    }    public void testNullAuthenticationInSecurityContext()        throws Exception {        try {            SecurityContextHolder.getContext().setAuthentication(null);            module.login();            fail("LoginException expected, the authentication is null in the SecurityContext");        } catch (Exception e) {}    }    public void testNullAuthenticationInSecurityContextIgnored()        throws Exception {        module = new SecurityContextLoginModule();        Map options = new HashMap();        options.put("ignoreMissingAuthentication", "true");        module.initialize(subject, null, null, options);        SecurityContextHolder.getContext().setAuthentication(null);        assertFalse("Should return false and ask to be ignored", module.login());    }    public void testNullLogout() throws Exception {        assertFalse(module.logout());    }}

⌨️ 快捷键说明

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