diff options
Diffstat (limited to 'jetty-security/src/main/java/org/eclipse/jetty/security/authentication/DeferredAuthentication.java')
-rw-r--r-- | jetty-security/src/main/java/org/eclipse/jetty/security/authentication/DeferredAuthentication.java | 106 |
1 files changed, 54 insertions, 52 deletions
diff --git a/jetty-security/src/main/java/org/eclipse/jetty/security/authentication/DeferredAuthentication.java b/jetty-security/src/main/java/org/eclipse/jetty/security/authentication/DeferredAuthentication.java index d3435d3f60..2cbd37f342 100644 --- a/jetty-security/src/main/java/org/eclipse/jetty/security/authentication/DeferredAuthentication.java +++ b/jetty-security/src/main/java/org/eclipse/jetty/security/authentication/DeferredAuthentication.java @@ -44,22 +44,9 @@ import org.eclipse.jetty.util.log.Logger; public class DeferredAuthentication implements Authentication.Deferred { private static final Logger LOG = Log.getLogger(DeferredAuthentication.class); - - protected final Authenticator _authenticator; - - private LoginService _loginService; - private IdentityService _identityService; + protected final LoginAuthenticator _authenticator; private Object _previousAssociation; - - /* ------------------------------------------------------------ */ - public DeferredAuthentication(Authenticator authenticator) - { - if (authenticator == null) - throw new NullPointerException("No Authenticator"); - this._authenticator = authenticator; - } - /* ------------------------------------------------------------ */ public DeferredAuthentication(LoginAuthenticator authenticator) { @@ -69,39 +56,10 @@ public class DeferredAuthentication implements Authentication.Deferred } /* ------------------------------------------------------------ */ - /** Get the identityService. - * @return the identityService - */ - public IdentityService getIdentityService() - { - return _identityService; - } - - /* ------------------------------------------------------------ */ - /** Set the identityService. - * @param identityService the identityService to set - */ - public void setIdentityService(IdentityService identityService) - { - _identityService = identityService; - } - - /* ------------------------------------------------------------ */ - public LoginService getLoginService() - { - return _loginService; - } - - /* ------------------------------------------------------------ */ - public void setLoginService(LoginService loginService) - { - _loginService = loginService; - } - - /* ------------------------------------------------------------ */ /** * @see org.eclipse.jetty.server.Authentication.Deferred#authenticate(ServletRequest) */ + @Override public Authentication authenticate(ServletRequest request) { try @@ -110,8 +68,11 @@ public class DeferredAuthentication implements Authentication.Deferred if (authentication!=null && (authentication instanceof Authentication.User) && !(authentication instanceof Authentication.ResponseSent)) { - if (_identityService!=null) - _previousAssociation=_identityService.associate(((Authentication.User)authentication).getUserIdentity()); + LoginService login_service= _authenticator.getLoginService(); + IdentityService identity_service=login_service.getIdentityService(); + + if (identity_service!=null) + _previousAssociation=identity_service.associate(((Authentication.User)authentication).getUserIdentity()); return authentication; } } @@ -126,13 +87,17 @@ public class DeferredAuthentication implements Authentication.Deferred /** * @see org.eclipse.jetty.server.Authentication.Deferred#authenticate(javax.servlet.ServletRequest, javax.servlet.ServletResponse) */ + @Override public Authentication authenticate(ServletRequest request, ServletResponse response) { try { + LoginService login_service= _authenticator.getLoginService(); + IdentityService identity_service=login_service.getIdentityService(); + Authentication authentication = _authenticator.validateRequest(request,response,true); - if (authentication instanceof Authentication.User && _identityService!=null) - _previousAssociation=_identityService.associate(((Authentication.User)authentication).getUserIdentity()); + if (authentication instanceof Authentication.User && identity_service!=null) + _previousAssociation=identity_service.associate(((Authentication.User)authentication).getUserIdentity()); return authentication; } catch (ServerAuthException e) @@ -146,16 +111,20 @@ public class DeferredAuthentication implements Authentication.Deferred /** * @see org.eclipse.jetty.server.Authentication.Deferred#login(java.lang.String, java.lang.String) */ + @Override public Authentication login(String username, String password) { - if (_loginService!=null) + LoginService login_service= _authenticator.getLoginService(); + IdentityService identity_service=login_service.getIdentityService(); + + if (login_service!=null) { - UserIdentity user = _loginService.login(username,password); + UserIdentity user = login_service.login(username,password); if (user!=null) { UserAuthentication authentication = new UserAuthentication("API",user); - if (_identityService!=null) - _previousAssociation=_identityService.associate(user); + if (identity_service!=null) + _previousAssociation=identity_service.associate(user); return authentication; } } @@ -183,146 +152,179 @@ public class DeferredAuthentication implements Authentication.Deferred /* ------------------------------------------------------------ */ final static HttpServletResponse __deferredResponse = new HttpServletResponse() { + @Override public void addCookie(Cookie cookie) { } + @Override public void addDateHeader(String name, long date) { } + @Override public void addHeader(String name, String value) { } + @Override public void addIntHeader(String name, int value) { } + @Override public boolean containsHeader(String name) { return false; } + @Override public String encodeRedirectURL(String url) { return null; } + @Override public String encodeRedirectUrl(String url) { return null; } + @Override public String encodeURL(String url) { return null; } + @Override public String encodeUrl(String url) { return null; } + @Override public void sendError(int sc) throws IOException { } + @Override public void sendError(int sc, String msg) throws IOException { } + @Override public void sendRedirect(String location) throws IOException { } + @Override public void setDateHeader(String name, long date) { } + @Override public void setHeader(String name, String value) { } + @Override public void setIntHeader(String name, int value) { } + @Override public void setStatus(int sc) { } + @Override public void setStatus(int sc, String sm) { } + @Override public void flushBuffer() throws IOException { } + @Override public int getBufferSize() { return 1024; } + @Override public String getCharacterEncoding() { return null; } + @Override public String getContentType() { return null; } + @Override public Locale getLocale() { return null; } + @Override public ServletOutputStream getOutputStream() throws IOException { return __nullOut; } + @Override public PrintWriter getWriter() throws IOException { return IO.getNullPrintWriter(); } + @Override public boolean isCommitted() { return true; } + @Override public void reset() { } + @Override public void resetBuffer() { } + @Override public void setBufferSize(int size) { } + @Override public void setCharacterEncoding(String charset) { } + @Override public void setContentLength(int len) { } + @Override public void setContentType(String type) { } + @Override public void setLocale(Locale loc) { } + @Override public Collection<String> getHeaderNames() { return Collections.emptyList(); |