Author: markt Date: Thu Feb 11 23:25:41 2016 New Revision: 1729925 URL: http://svn.apache.org/viewvc?rev=1729925&view=rev Log: JASPIC updates (minus the AuthenticatorBase integration) Fix the wrapping and the register-session javaee7-samples tests
Modified: tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java Modified: tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java?rev=1729925&r1=1729924&r2=1729925&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java Thu Feb 11 23:25:41 2016 @@ -55,7 +55,11 @@ public class Constants { * request is associated. */ public static final String REQ_SSOID_NOTE = - "org.apache.catalina.request.SSOID"; + "org.apache.catalina.request.SSOID"; + + + public static final String REQ_JASPIC_SUBJECT_NOTE = + "org.apache.catalina.authenticator.jaspic.SUBJECT"; // ---------------------------------------------------------- Session Notes Modified: tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties?rev=1729925&r1=1729924&r2=1729925&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties Thu Feb 11 23:25:41 2016 @@ -19,6 +19,7 @@ authenticator.check.authorize=Authorizin authenticator.check.authorizeFail=Realm did not recognise user [{0}]. Creating a Principal with that name and no roles. authenticator.check.found=Already authenticated [{0}] authenticator.check.sso=Not authenticated but SSO session ID [{0}] found. Attempting re-authentication. +authenticator.jaspicCleanSubjectFail=Failed to clean JASPIC subject authenticator.formlogin=Invalid direct reference to form login page authenticator.loginFail=Login failed authenticator.manager=Exception initializing trust managers Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java?rev=1729925&r1=1729924&r2=1729925&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/CallbackHandlerImpl.java Thu Feb 11 23:25:41 2016 @@ -29,7 +29,6 @@ import javax.security.auth.callback.Unsu import javax.security.auth.message.callback.CallerPrincipalCallback; import javax.security.auth.message.callback.GroupPrincipalCallback; -import org.apache.catalina.connector.Request; import org.apache.catalina.realm.GenericPrincipal; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -40,18 +39,12 @@ public class CallbackHandlerImpl impleme private static final Log log = LogFactory.getLog(CallbackHandlerImpl.class); private static final StringManager sm = StringManager.getManager(CallbackHandlerImpl.class); - private Request request; private String name; private Principal principal; private Subject subject; private String[] groups; - public CallbackHandlerImpl(Request request) { - this.request = request; - } - - @Override public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { if (callbacks != null) { @@ -74,19 +67,19 @@ public class CallbackHandlerImpl impleme } // Create the GenericPrincipal - GenericPrincipal gp = getGenericPrincipal(); - if (gp != null) { - request.setUserPrincipal(gp); - - if (subject != null) { - subject.getPrivateCredentials().add(gp); - } + Principal gp = getPrincipal(); + if (subject != null && gp != null) { + subject.getPrivateCredentials().add(gp); } } } - public GenericPrincipal getGenericPrincipal() { + private Principal getPrincipal() { + // If the Principal is cached in the session JASPIC may simply return it + if (principal instanceof GenericPrincipal) { + return principal; + } String name = this.name; if (name == null && principal != null) { name = principal.getName(); Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java?rev=1729925&r1=1729924&r2=1729925&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java (original) +++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/MessageInfoImpl.java Thu Feb 11 23:25:41 2016 @@ -20,9 +20,9 @@ import java.util.HashMap; import java.util.Map; import javax.security.auth.message.MessageInfo; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.catalina.connector.Request; import org.apache.tomcat.util.res.StringManager; public class MessageInfoImpl implements MessageInfo { @@ -31,13 +31,13 @@ public class MessageInfoImpl implements public static final String IS_MANDATORY = "javax.security.auth.message.MessagePolicy.isMandatory"; private final Map<String, Object> map = new HashMap<>(); - private Request request; + private HttpServletRequest request; private HttpServletResponse response; public MessageInfoImpl() { } - public MessageInfoImpl(Request request, HttpServletResponse response, boolean authMandatory) { + public MessageInfoImpl(HttpServletRequest request, HttpServletResponse response, boolean authMandatory) { this.request = request; this.response = response; map.put(IS_MANDATORY, Boolean.toString(authMandatory)); @@ -62,11 +62,11 @@ public class MessageInfoImpl implements @Override public void setRequestMessage(Object request) { - if (!(request instanceof Request)) { + if (!(request instanceof HttpServletRequest)) { throw new IllegalArgumentException(sm.getString("authenticator.jaspic.badRequestType", request.getClass().getName())); } - this.request = (Request) request; + this.request = (HttpServletRequest) request; } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org