Author: markt
Date: Wed Jun 17 09:04:26 2015
New Revision: 1685958
URL: http://svn.apache.org/r1685958
Log:
Add initial JASPIC unit tests
Patch by fjodorver
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicAuthenticator.java
(with props)
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicCallbackHandler.java
(with props)
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestPrincipalGroupCallback.java
(with props)
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfig.java
(with props)
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfigProvider.java
(with props)
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthModule.java
(with props)
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestServerAuthContext.java
(with props)
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicAuthenticator.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicAuthenticator.java?rev=1685958&view=auto
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicAuthenticator.java
(added)
+++
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicAuthenticator.java
Wed Jun 17 09:04:26 2015
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.catalina.authenticator.jaspic;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.security.auth.message.config.AuthConfigFactory;
+import javax.servlet.http.HttpServletResponse;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.authenticator.jaspic.sam.TestAuthConfigProvider;
+import org.apache.catalina.startup.TesterServlet;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.tomcat.util.buf.ByteChunk;
+import org.apache.tomcat.util.descriptor.web.LoginConfig;
+import org.apache.tomcat.util.descriptor.web.SecurityCollection;
+import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
+
+public class TestJaspicAuthenticator extends TomcatBaseTest {
+
+ private static String CONTEXT_PATH = "/foo";
+ private static final String URI_PROTECTED = "/protected";
+ private static final String ROLE = "group";
+ private Context context;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+
+ Tomcat tomcat = getTomcatInstance();
+ this.context = tomcat.addContext(CONTEXT_PATH, null);
+
+ // Add protected servlet
+ Tomcat.addServlet(context, "TesterServlet3", new TesterServlet());
+ context.addServletMapping(URI_PROTECTED, "TesterServlet3");
+ SecurityCollection collection = new SecurityCollection();
+ collection.addPattern(URI_PROTECTED);
+
+ SecurityConstraint constraint = new SecurityConstraint();
+ constraint.addAuthRole(ROLE);
+ constraint.addCollection(collection);
+ context.addConstraint(constraint);
+
+ // Configure the authenticator
+ LoginConfig loginConfig = new LoginConfig();
+ loginConfig.setAuthMethod("JASPIC-BASIC");
+ context.setLoginConfig(loginConfig);
+ context.getPipeline().addValve(new JaspicAuthenticator());
+
+ AuthConfigFactory factory = AuthConfigFactory.getFactory();
+ factory.registerConfigProvider(new TestAuthConfigProvider(),
"HttpServlet", null,
+ "Description");
+ getTomcatInstance().start();
+ }
+
+ @Test
+ public void shouldAuthenticateUsingRegistredJaspicProvider() throws
Exception {
+ // given
+ String url = getUrl() + URI_PROTECTED + "?doLogin=true";
+ ByteChunk byteChunk = new ByteChunk();
+
+ // when
+ int result = getUrl(url, byteChunk, new HashMap<String,
List<String>>());
+
+ // then
+ assertEquals(HttpServletResponse.SC_OK, result);
+ assertEquals("OK", byteChunk.toString());
+ }
+
+ @Test
+ public void shouldFailAuthenticationUsingRegistredJaspicProvider() throws
Exception {
+ // given
+ String url = getUrl() + URI_PROTECTED;
+ ByteChunk byteChunk = new ByteChunk();
+
+ // when
+ int result = getUrl(url, byteChunk, new HashMap<String,
List<String>>());
+
+ // then
+ assertEquals(HttpServletResponse.SC_FORBIDDEN, result);
+ }
+
+ private String getUrl() throws MalformedURLException {
+ return new URL("http", "localhost", getPort(),
CONTEXT_PATH).toString();
+ }
+
+}
Propchange:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicAuthenticator.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicCallbackHandler.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicCallbackHandler.java?rev=1685958&view=auto
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicCallbackHandler.java
(added)
+++
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicCallbackHandler.java
Wed Jun 17 09:04:26 2015
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.catalina.authenticator.jaspic;
+
+import javax.security.auth.Subject;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.message.callback.CallerPrincipalCallback;
+import javax.security.auth.message.callback.GroupPrincipalCallback;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+
+import org.apache.catalina.realm.GenericPrincipal;
+
+public class TestJaspicCallbackHandler {
+ private static final String USER = "user";
+
+ private JaspicCallbackHandler jaspicCallbackHandler = new
JaspicCallbackHandler(null);
+
+ @Test
+ public void shouldConvertCallbackToTomcatPrincipal() throws Exception {
+ // given
+ CallerPrincipalCallback callerCallback = new
CallerPrincipalCallback(new Subject(), USER);
+ String[] groups = new String[] { "group" };
+
+ GroupPrincipalCallback groupCallback = new GroupPrincipalCallback(new
Subject(), groups);
+ Callback[] callbacks = new Callback[] { callerCallback, groupCallback
};
+
+ // when
+ jaspicCallbackHandler.handle(callbacks);
+ GenericPrincipal principal = jaspicCallbackHandler.getPrincipal();
+
+ // then
+ assertEquals(USER, principal.getName());
+ assertArrayEquals(groups, principal.getRoles());
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void shouldHandleUnknowCallback() throws Exception {
+ // given
+ Callback[] callbacks = new Callback[] { new Callback() {
+ } };
+
+ // when
+ jaspicCallbackHandler.handle(callbacks);
+
+ // then
+ fail("Should throw exception");
+ }
+
+}
\ No newline at end of file
Propchange:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestJaspicCallbackHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestPrincipalGroupCallback.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestPrincipalGroupCallback.java?rev=1685958&view=auto
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestPrincipalGroupCallback.java
(added)
+++
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestPrincipalGroupCallback.java
Wed Jun 17 09:04:26 2015
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.catalina.authenticator.jaspic;
+
+import java.security.Principal;
+
+import javax.security.auth.Subject;
+import javax.security.auth.message.callback.CallerPrincipalCallback;
+import javax.security.auth.message.callback.GroupPrincipalCallback;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import org.junit.Test;
+
+import org.apache.catalina.realm.GenericPrincipal;
+
+public class TestPrincipalGroupCallback {
+
+ private static final String USER_NAME = "user";
+
+ @Test
+ public void shouldAddUserPrincipal() throws Exception {
+ // given
+ PrincipalGroupCallback principalGroupCallback = new
PrincipalGroupCallback();
+ UserPrincipal userPrincipal = new UserPrincipal(USER_NAME);
+ Subject subject = new Subject();
+ CallerPrincipalCallback callerCallback = new
CallerPrincipalCallback(subject, userPrincipal);
+ principalGroupCallback.setCallerPrincipalCallback(callerCallback);
+ // when
+ GenericPrincipal principal = principalGroupCallback.getPrincipal();
+
+ // then
+ assertEquals(USER_NAME, principal.getName());
+ assertEquals(userPrincipal, principal.getUserPrincipal());
+ }
+
+ @Test
+ public void shouldCreatePrincipalWithUsername() throws Exception {
+ // given
+ PrincipalGroupCallback principalGroupCallback = new
PrincipalGroupCallback();
+ Subject subject = new Subject();
+ CallerPrincipalCallback callerCallback = new
CallerPrincipalCallback(subject, USER_NAME);
+ principalGroupCallback.setCallerPrincipalCallback(callerCallback);
+ // when
+ GenericPrincipal principal = principalGroupCallback.getPrincipal();
+
+ // then
+ assertEquals(USER_NAME, principal.getName());
+ }
+
+ @Test
+ public void shouldAddGroupsToPrincipal() throws Exception {
+ // given
+ PrincipalGroupCallback principalGroupCallback = new
PrincipalGroupCallback();
+ Subject subject = new Subject();
+
+ CallerPrincipalCallback callerCallback = new
CallerPrincipalCallback(subject, USER_NAME);
+ principalGroupCallback.setCallerPrincipalCallback(callerCallback);
+
+ String[] groups = new String[] { "group1" };
+ GroupPrincipalCallback groupCallback = new
GroupPrincipalCallback(subject, groups);
+ principalGroupCallback.setCallerPrincipalCallback(groupCallback);
+
+ // when
+ GenericPrincipal principal = principalGroupCallback.getPrincipal();
+
+ // then
+ assertArrayEquals(principal.getRoles(), groups);
+ }
+
+ @Test
+ public void shouldReturnNullIfNoCallbackDefined() throws Exception {
+ // given
+ PrincipalGroupCallback principalGroupCallback = new
PrincipalGroupCallback();
+
+ // when
+ GenericPrincipal principal = principalGroupCallback.getPrincipal();
+
+ // then
+ assertNull(principal);
+ }
+
+ private static class UserPrincipal implements Principal {
+ private String name;
+
+ public UserPrincipal(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+ }
+}
\ No newline at end of file
Propchange:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/TestPrincipalGroupCallback.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfig.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfig.java?rev=1685958&view=auto
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfig.java
(added)
+++
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfig.java
Wed Jun 17 09:04:26 2015
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.catalina.authenticator.jaspic.sam;
+
+import java.util.Map;
+
+import javax.security.auth.Subject;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.message.AuthException;
+import javax.security.auth.message.MessageInfo;
+import javax.security.auth.message.config.ServerAuthConfig;
+import javax.security.auth.message.config.ServerAuthContext;
+import javax.security.auth.message.module.ServerAuthModule;
+
+public class TestAuthConfig implements ServerAuthConfig {
+ private CallbackHandler callbackHandler;
+ private ServerAuthModule authModule;
+
+ public TestAuthConfig(CallbackHandler callbackHandler, ServerAuthModule
authModule) {
+ this.callbackHandler = callbackHandler;
+ this.authModule = authModule;
+ }
+
+ @Override
+ public String getMessageLayer() {
+ return "HttpServlet";
+ }
+
+ @Override
+ public String getAppContext() {
+ return null;
+ }
+
+ @Override
+ public String getAuthContextID(MessageInfo messageInfo) {
+ return null;
+ }
+
+ @Override
+ public void refresh() {
+
+ }
+
+ @Override
+ public boolean isProtected() {
+ return false;
+ }
+
+ @Override
+ @SuppressWarnings("rawtypes")
+ public ServerAuthContext getAuthContext(String authContextID, Subject
serviceSubject,
+ Map properties) throws AuthException {
+ return new TestServerAuthContext(callbackHandler, authModule);
+ }
+
+}
\ No newline at end of file
Propchange:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfig.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfigProvider.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfigProvider.java?rev=1685958&view=auto
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfigProvider.java
(added)
+++
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfigProvider.java
Wed Jun 17 09:04:26 2015
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.catalina.authenticator.jaspic.sam;
+
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.message.AuthException;
+import javax.security.auth.message.config.AuthConfigProvider;
+import javax.security.auth.message.config.ClientAuthConfig;
+import javax.security.auth.message.config.ServerAuthConfig;
+
+public class TestAuthConfigProvider implements AuthConfigProvider {
+
+ @Override
+ public ClientAuthConfig getClientAuthConfig(String layer, String
appContext,
+ CallbackHandler handler) throws AuthException {
+ return null;
+ }
+
+ @Override
+ public ServerAuthConfig getServerAuthConfig(String layer, String
appContext,
+ CallbackHandler handler) throws AuthException {
+ return new TestAuthConfig(handler, new TestAuthModule());
+ }
+
+ @Override
+ public void refresh() {
+ }
+}
\ No newline at end of file
Propchange:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthConfigProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthModule.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthModule.java?rev=1685958&view=auto
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthModule.java
(added)
+++
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthModule.java
Wed Jun 17 09:04:26 2015
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.catalina.authenticator.jaspic.sam;
+
+import java.io.IOException;
+import java.security.Principal;
+import java.util.Map;
+
+import javax.security.auth.Subject;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import javax.security.auth.message.AuthException;
+import javax.security.auth.message.AuthStatus;
+import javax.security.auth.message.MessageInfo;
+import javax.security.auth.message.MessagePolicy;
+import javax.security.auth.message.callback.CallerPrincipalCallback;
+import javax.security.auth.message.callback.GroupPrincipalCallback;
+import javax.security.auth.message.module.ServerAuthModule;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class TestAuthModule implements ServerAuthModule {
+
+ private CallbackHandler handler;
+ private Class<?>[] supportedMessageTypes = new Class[] {
HttpServletRequest.class,
+ HttpServletResponse.class };
+
+ @Override
+ @SuppressWarnings("rawtypes")
+ public void initialize(MessagePolicy requestPolicy, MessagePolicy
responsePolicy,
+ CallbackHandler handler, Map options) throws AuthException {
+ this.handler = handler;
+ }
+
+ @Override
+ public AuthStatus validateRequest(MessageInfo messageInfo, Subject
clientSubject,
+ Subject serviceSubject) throws AuthException {
+ HttpServletRequest request = (HttpServletRequest)
messageInfo.getRequestMessage();
+
+ Callback[] callbacks = getAuthenticationCallbacks(clientSubject,
request);
+
+ try {
+ handler.handle(callbacks);
+ } catch (IOException | UnsupportedCallbackException e) {
+ throw (AuthException) new AuthException().initCause(e);
+ }
+
+ return AuthStatus.SUCCESS;
+ }
+
+ private Callback[] getAuthenticationCallbacks(Subject clientSubject,
HttpServletRequest request) {
+ Callback[] callbacks;
+
+ if (request.getParameter("doLogin") != null) {
+ callbacks = new Callback[] { new
CallerPrincipalCallback(clientSubject, "user"),
+ new GroupPrincipalCallback(clientSubject, new String[] {
"group" }) };
+ } else {
+ callbacks = new Callback[] { new
CallerPrincipalCallback(clientSubject,
+ (Principal) null) };
+ }
+ return callbacks;
+ }
+
+ @Override
+ public AuthStatus secureResponse(MessageInfo messageInfo, Subject
serviceSubject)
+ throws AuthException {
+ return AuthStatus.SEND_SUCCESS;
+ }
+
+ @Override
+ public void cleanSubject(MessageInfo messageInfo, Subject subject) throws
AuthException {
+
+ }
+
+ @Override
+ public Class<?>[] getSupportedMessageTypes() {
+ return supportedMessageTypes;
+ }
+
+}
Propchange:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestAuthModule.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestServerAuthContext.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestServerAuthContext.java?rev=1685958&view=auto
==============================================================================
---
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestServerAuthContext.java
(added)
+++
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestServerAuthContext.java
Wed Jun 17 09:04:26 2015
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.catalina.authenticator.jaspic.sam;
+
+import java.util.Collections;
+
+import javax.security.auth.Subject;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.message.AuthException;
+import javax.security.auth.message.AuthStatus;
+import javax.security.auth.message.MessageInfo;
+import javax.security.auth.message.config.ServerAuthContext;
+import javax.security.auth.message.module.ServerAuthModule;
+
+public class TestServerAuthContext implements ServerAuthContext {
+
+ private final ServerAuthModule authModule;
+
+ public TestServerAuthContext(CallbackHandler handler, ServerAuthModule
authModule)
+ throws AuthException {
+ this.authModule = authModule;
+ authModule.initialize(null, null, handler, Collections.emptyMap());
+ }
+
+ @Override
+ public AuthStatus validateRequest(MessageInfo messageInfo, Subject
clientSubject,
+ Subject serviceSubject) throws AuthException {
+ return authModule.validateRequest(messageInfo, clientSubject,
serviceSubject);
+ }
+
+ @Override
+ public AuthStatus secureResponse(MessageInfo messageInfo, Subject
serviceSubject)
+ throws AuthException {
+ return authModule.secureResponse(messageInfo, serviceSubject);
+ }
+
+ @Override
+ public void cleanSubject(MessageInfo messageInfo, Subject subject) throws
AuthException {
+ authModule.cleanSubject(messageInfo, subject);
+ }
+
+}
Propchange:
tomcat/trunk/test/org/apache/catalina/authenticator/jaspic/sam/TestServerAuthContext.java
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]