Search in sources :

Example 11 with LoginModule

use of javax.security.auth.spi.LoginModule in project jspwiki by apache.

the class CookieAssertionLoginModuleTest method testLogin.

public final void testLogin() {
    MockHttpServletRequest request = m_engine.newHttpRequest();
    try {
        // We can use cookies right?
        Assert.assertTrue(m_engine.getAuthenticationManager().allowsCookieAssertions());
        // Test using Cookie and IP address (AnonymousLoginModule succeeds)
        Cookie cookie = new Cookie(CookieAssertionLoginModule.PREFS_COOKIE_NAME, "Bullwinkle");
        request.setCookies(new Cookie[] { cookie });
        m_subject = new Subject();
        CallbackHandler handler = new WebContainerCallbackHandler(m_engine, request);
        LoginModule module = new CookieAssertionLoginModule();
        module.initialize(m_subject, handler, new HashMap<String, Object>(), new HashMap<String, Object>());
        module.login();
        module.commit();
        Set<Principal> principals = m_subject.getPrincipals();
        Assert.assertEquals(1, principals.size());
        Assert.assertTrue(principals.contains(new WikiPrincipal("Bullwinkle")));
        Assert.assertFalse(principals.contains(Role.ASSERTED));
        Assert.assertFalse(principals.contains(Role.ALL));
    } catch (LoginException e) {
        System.err.println(e.getMessage());
        Assert.assertTrue(false);
    }
}
Also used : Cookie(javax.servlet.http.Cookie) CallbackHandler(javax.security.auth.callback.CallbackHandler) MockHttpServletRequest(net.sourceforge.stripes.mock.MockHttpServletRequest) LoginModule(javax.security.auth.spi.LoginModule) Subject(javax.security.auth.Subject) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) LoginException(javax.security.auth.login.LoginException) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) Principal(java.security.Principal)

Example 12 with LoginModule

use of javax.security.auth.spi.LoginModule in project jspwiki by apache.

the class WebContainerLoginModuleTest method testLogin.

public final void testLogin() {
    Principal principal = new WikiPrincipal("Andrew Jaquith");
    MockHttpServletRequest request = m_engine.newHttpRequest();
    request.setUserPrincipal(principal);
    try {
        // Test using Principal (WebContainerLoginModule succeeds)
        CallbackHandler handler = new WebContainerCallbackHandler(m_engine, request);
        LoginModule module = new WebContainerLoginModule();
        module.initialize(m_subject, handler, new HashMap<String, Object>(), new HashMap<String, Object>());
        module.login();
        module.commit();
        Set<Principal> principals = m_subject.getPrincipals();
        Assert.assertEquals(1, principals.size());
        Assert.assertTrue(principals.contains(principal));
        Assert.assertFalse(principals.contains(Role.ANONYMOUS));
        Assert.assertFalse(principals.contains(Role.ASSERTED));
        Assert.assertFalse(principals.contains(Role.AUTHENTICATED));
        Assert.assertFalse(principals.contains(Role.ALL));
    } catch (LoginException e) {
        System.err.println(e.getMessage());
        Assert.assertTrue(false);
    }
}
Also used : CallbackHandler(javax.security.auth.callback.CallbackHandler) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) MockHttpServletRequest(net.sourceforge.stripes.mock.MockHttpServletRequest) LoginException(javax.security.auth.login.LoginException) LoginModule(javax.security.auth.spi.LoginModule) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) Principal(java.security.Principal)

Example 13 with LoginModule

use of javax.security.auth.spi.LoginModule in project jspwiki by apache.

the class WebContainerLoginModuleTest method testLogout.

public final void testLogout() {
    Principal principal = new WikiPrincipal("Andrew Jaquith");
    MockHttpServletRequest request = m_engine.newHttpRequest();
    request.setUserPrincipal(principal);
    try {
        CallbackHandler handler = new WebContainerCallbackHandler(m_engine, request);
        LoginModule module = new WebContainerLoginModule();
        module.initialize(m_subject, handler, new HashMap<String, Object>(), new HashMap<String, Object>());
        module.login();
        module.commit();
        Set<Principal> principals = m_subject.getPrincipals();
        Assert.assertEquals(1, principals.size());
        Assert.assertTrue(principals.contains(principal));
        Assert.assertFalse(principals.contains(Role.AUTHENTICATED));
        Assert.assertFalse(principals.contains(Role.ALL));
        module.logout();
        Assert.assertEquals(0, principals.size());
    } catch (LoginException e) {
        System.err.println(e.getMessage());
        Assert.assertTrue(false);
    }
}
Also used : CallbackHandler(javax.security.auth.callback.CallbackHandler) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) MockHttpServletRequest(net.sourceforge.stripes.mock.MockHttpServletRequest) LoginException(javax.security.auth.login.LoginException) LoginModule(javax.security.auth.spi.LoginModule) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) Principal(java.security.Principal)

Example 14 with LoginModule

use of javax.security.auth.spi.LoginModule in project polymap4-core by Polymap4.

the class ExtLoginModuleLoader method load.

public static LoginModule load(Map options) {
    IExtensionRegistry registry = RegistryFactory.getRegistry();
    IExtensionPoint point = registry.getExtensionPoint(POINT_MODULE);
    IExtension[] extensions = point.getExtensions();
    String targetPoint = (String) options.get(ExtensionLoginModule.OPTION_MODULE_POINT);
    LoginModule loginModule = null;
    for (int i = 0; i < extensions.length; i++) {
        String sourcePoint = extensions[i].getUniqueIdentifier();
        if (// technically, IDs on extensions are optional
        sourcePoint == null)
            continue;
        if (sourcePoint.equals(targetPoint)) {
            IConfigurationElement[] elements = extensions[i].getConfigurationElements();
            int elementCount = elements.length;
            if (elementCount == 1)
                loginModule = readEntry(elements[0]);
            else {
                String message = NLS.bind(SecAuthMessages.invalidLoginmoduleCount, Integer.toString(elementCount));
                AuthPlugin.getDefault().logError(message, null);
            }
        }
    }
    return loginModule;
}
Also used : LoginModule(javax.security.auth.spi.LoginModule) ExtensionLoginModule(org.eclipse.equinox.security.auth.module.ExtensionLoginModule)

Example 15 with LoginModule

use of javax.security.auth.spi.LoginModule in project polymap4-core by Polymap4.

the class ExtLoginModuleLoader method readEntry.

private static LoginModule readEntry(IConfigurationElement element) {
    // XXX make this check an utility
    if (!ELEM_MODULE.equals(element.getName())) {
        String supplier = element.getContributor().getName();
        String message = NLS.bind(SecAuthMessages.unexpectedConfigElement, element.getName(), supplier);
        AuthPlugin.getDefault().logError(message, null);
        return null;
    }
    // XXX make creation of executable extension and its error handling an utility
    try {
        LoginModule module = (LoginModule) element.createExecutableExtension(ATTR_MODULE_CLASS);
        return module;
    // future expandability: description is stored in the attribute "description"
    } catch (CoreException e) {
        String supplier = element.getContributor().getName();
        String message = NLS.bind(SecAuthMessages.instantiationFailed, element.getAttribute(ATTR_MODULE_CLASS), supplier);
        AuthPlugin.getDefault().logError(message, e);
        return null;
    }
}
Also used : LoginModule(javax.security.auth.spi.LoginModule) ExtensionLoginModule(org.eclipse.equinox.security.auth.module.ExtensionLoginModule)

Aggregations

LoginModule (javax.security.auth.spi.LoginModule)19 LoginException (javax.security.auth.login.LoginException)12 CallbackHandler (javax.security.auth.callback.CallbackHandler)10 Principal (java.security.Principal)8 Subject (javax.security.auth.Subject)8 WikiPrincipal (org.apache.wiki.auth.WikiPrincipal)8 MockHttpServletRequest (net.sourceforge.stripes.mock.MockHttpServletRequest)4 HashMap (java.util.HashMap)2 Map (java.util.Map)2 Cookie (javax.servlet.http.Cookie)2 HttpServletRequest (javax.servlet.http.HttpServletRequest)2 ExtensionLoginModule (org.eclipse.equinox.security.auth.module.ExtensionLoginModule)2 SecurityLoggerInfo (com.sun.enterprise.security.SecurityLoggerInfo)1 CERT_REALMNAME (com.sun.enterprise.security.auth.login.LoginContextDriver.CERT_REALMNAME)1 X509CertificateCredential (com.sun.enterprise.security.auth.login.common.X509CertificateCredential)1 OID (com.sun.enterprise.security.auth.realm.certificate.OID)1 AppClientSSL (com.sun.enterprise.security.integration.AppClientSSL)1 SSLUtils (com.sun.enterprise.security.ssl.SSLUtils)1 LocalStringManagerImpl (com.sun.enterprise.util.LocalStringManagerImpl)1 KeyStore (java.security.KeyStore)1