Author: markt
Date: Thu Aug 4 16:36:41 2016
New Revision: 1755204
URL: http://svn.apache.org/viewvc?rev=1755204&view=rev
Log:
Delay JASPIC init
Modified:
tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java
Modified:
tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java?rev=1755204&r1=1755203&r2=1755204&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/authenticator/AuthenticatorBase.java
Thu Aug 4 16:36:41 2016
@@ -428,10 +428,6 @@ public abstract class AuthenticatorBase
request.getRequestURI());
}
- AuthConfigProvider jaspicProvider = getJaspicProvider();
- MessageInfo messageInfo = null;
- ServerAuthContext serverAuthContext = null;
-
// Have we got a cached authenticated Principal to record?
if (cache) {
Principal principal = request.getUserPrincipal();
@@ -451,20 +447,6 @@ public abstract class AuthenticatorBase
}
}
- if (jaspicProvider != null) {
- messageInfo = new MessageInfoImpl(request.getRequest(),
response.getResponse(), true);
- try {
- ServerAuthConfig serverAuthConfig =
jaspicProvider.getServerAuthConfig(
- "HttpServlet", jaspicAppContextID,
CallbackHandlerImpl.getInstance());
- String authContextID =
serverAuthConfig.getAuthContextID(messageInfo);
- serverAuthContext =
serverAuthConfig.getAuthContext(authContextID, null, null);
- } catch (AuthException e) {
-
log.warn(sm.getString("authenticator.jaspicServerAuthContextFail"), e);
-
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- return;
- }
- }
-
boolean authRequired = isContinuationRequired(request);
// The Servlet may specify security constraints through annotations.
@@ -478,8 +460,12 @@ public abstract class AuthenticatorBase
// Is this request URI subject to a security constraint?
SecurityConstraint[] constraints =
realm.findSecurityConstraints(request, this.context);
- if (constraints == null && !context.getPreemptiveAuthentication() &&
- jaspicProvider == null && !authRequired) {
+ AuthConfigProvider jaspicProvider = getJaspicProvider();
+ if (jaspicProvider != null) {
+ authRequired = true;
+ }
+
+ if (constraints == null && !context.getPreemptiveAuthentication() &&
!authRequired) {
if (log.isDebugEnabled()) {
log.debug(" Not subject to any constraint");
}
@@ -548,14 +534,28 @@ public abstract class AuthenticatorBase
authRequired = certs != null && certs.length > 0;
}
- if (!authRequired && jaspicProvider != null) {
- authRequired = true;
- }
+ MessageInfo messageInfo = null;
+ ServerAuthContext serverAuthContext = null;
if (authRequired) {
if (log.isDebugEnabled()) {
log.debug(" Calling authenticate()");
}
+
+ if (jaspicProvider != null) {
+ messageInfo = new MessageInfoImpl(request.getRequest(),
response.getResponse(), true);
+ try {
+ ServerAuthConfig serverAuthConfig =
jaspicProvider.getServerAuthConfig(
+ "HttpServlet", jaspicAppContextID,
CallbackHandlerImpl.getInstance());
+ String authContextID =
serverAuthConfig.getAuthContextID(messageInfo);
+ serverAuthContext =
serverAuthConfig.getAuthContext(authContextID, null, null);
+ } catch (AuthException e) {
+
log.warn(sm.getString("authenticator.jaspicServerAuthContextFail"), e);
+
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ return;
+ }
+ }
+
if (!authenticate(request, response, serverAuthContext,
messageInfo)) {
if (log.isDebugEnabled()) {
log.debug(" Failed authenticate() test");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]