Package org.alfresco.repo.webdav.auth
Class BaseAuthenticationFilter
- java.lang.Object
-
- org.alfresco.repo.webdav.auth.BaseAuthenticationFilter
-
- Direct Known Subclasses:
AuthenticationFilter,BaseSSOAuthenticationFilter,HTTPRequestAuthenticationFilter,WebscriptCookieAuthenticationFilter,WebScriptSSOAuthenticationFilter
public abstract class BaseAuthenticationFilter extends Object
A base class for authentication filters. Handles management of the session user.- Author:
- dward
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringARG_TICKETThe name of the ticket argument.static StringAUTHENTICATION_USERThe default session attribute used to cache the user.protected org.alfresco.repo.security.authentication.AuthenticationComponentauthenticationComponentThe authentication component.protected AuthenticationListenerauthenticationListenerThe authentication listener.protected org.alfresco.service.cmr.security.AuthenticationServiceauthenticationServiceThe authentication service.protected static StringNO_AUTH_REQUIREDIndication by an up-stream filter that no authentication checks are required.protected org.alfresco.service.cmr.repository.NodeServicenodeServiceThe node service.protected org.alfresco.service.cmr.security.PersonServicepersonServiceThe person service.protected org.alfresco.repo.security.authentication.external.RemoteUserMapperremoteUserMapperThe remote user mapper.protected org.alfresco.service.transaction.TransactionServicetransactionServiceThe transaction service.
-
Constructor Summary
Constructors Constructor Description BaseAuthenticationFilter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected SessionUsercreateUserEnvironment(javax.servlet.http.HttpSession session, String userName)Callback to create the User environment as appropriate for a filter implprotected SessionUsercreateUserEnvironment(javax.servlet.http.HttpSession session, String userName, String ticket, boolean externalAuth)Callback to create the User environment as appropriate for a filter impl.protected SessionUsercreateUserObject(String userName, String ticket, org.alfresco.service.cmr.repository.NodeRef personNode, org.alfresco.service.cmr.repository.NodeRef homeSpaceRef)Create the user object that will be stored in the session.protected <T> TdoInSystemTransaction(org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback<T> callback)Executes a callback in a transaction as the system userprotected abstract org.apache.commons.logging.LoggetLogger()Return the logger.protected SessionUsergetSessionUser(javax.servlet.ServletContext servletContext, javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, boolean externalAuth)Callback to get the specific impl of the Session User for a filter.protected StringgetUserAttributeName()Return the user object session attribute name.protected booleanhandleLoginForm(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)Handles the login form directly, allowing management of the session user.protected voidinvalidateSession(javax.servlet.http.HttpServletRequest req)Remove the user from the session and expire the session - after failed ticket auth.voidsetAuthenticationComponent(org.alfresco.repo.security.authentication.AuthenticationComponent authenticationComponent)Sets the authentication component.voidsetAuthenticationListener(AuthenticationListener authenticationListener)Sets the authentication listener.voidsetAuthenticationService(org.alfresco.service.cmr.security.AuthenticationService authenticationService)Sets the authentication service.voidsetNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)Sets the node service.voidsetPersonService(org.alfresco.service.cmr.security.PersonService personService)Sets the person service.voidsetRemoteUserMapper(org.alfresco.repo.security.authentication.external.RemoteUserMapper remoteUserMapper)Sets the remote user mapper.voidsetTransactionService(org.alfresco.service.transaction.TransactionService transactionService)Sets the transaction service.protected voidsetUserAttributeName(String userAttr)Set the user object attribute name.
-
-
-
Field Detail
-
NO_AUTH_REQUIRED
protected static final String NO_AUTH_REQUIRED
Indication by an up-stream filter that no authentication checks are required.- See Also:
- Constant Field Values
-
AUTHENTICATION_USER
public static final String AUTHENTICATION_USER
The default session attribute used to cache the user. Subclasses may override this withsetUserAttributeName(String).- See Also:
- Constant Field Values
-
ARG_TICKET
protected static final String ARG_TICKET
The name of the ticket argument.- See Also:
- Constant Field Values
-
authenticationService
protected org.alfresco.service.cmr.security.AuthenticationService authenticationService
The authentication service.
-
personService
protected org.alfresco.service.cmr.security.PersonService personService
The person service.
-
nodeService
protected org.alfresco.service.cmr.repository.NodeService nodeService
The node service.
-
transactionService
protected org.alfresco.service.transaction.TransactionService transactionService
The transaction service.
-
authenticationComponent
protected org.alfresco.repo.security.authentication.AuthenticationComponent authenticationComponent
The authentication component.
-
remoteUserMapper
protected org.alfresco.repo.security.authentication.external.RemoteUserMapper remoteUserMapper
The remote user mapper.
-
authenticationListener
protected AuthenticationListener authenticationListener
The authentication listener.
-
-
Method Detail
-
setAuthenticationService
public void setAuthenticationService(org.alfresco.service.cmr.security.AuthenticationService authenticationService)
Sets the authentication service.- Parameters:
authenticationService- the authService to set
-
setPersonService
public void setPersonService(org.alfresco.service.cmr.security.PersonService personService)
Sets the person service.- Parameters:
personService- the personService to set
-
setNodeService
public void setNodeService(org.alfresco.service.cmr.repository.NodeService nodeService)
Sets the node service.- Parameters:
nodeService- the nodeService to set
-
setTransactionService
public void setTransactionService(org.alfresco.service.transaction.TransactionService transactionService)
Sets the transaction service.- Parameters:
transactionService- the transactionService to set
-
setAuthenticationComponent
public void setAuthenticationComponent(org.alfresco.repo.security.authentication.AuthenticationComponent authenticationComponent)
Sets the authentication component.- Parameters:
authenticationComponent- the authentication component
-
setAuthenticationListener
public void setAuthenticationListener(AuthenticationListener authenticationListener)
Sets the authentication listener.- Parameters:
authenticationListener- AuthenticationListener
-
setRemoteUserMapper
public void setRemoteUserMapper(org.alfresco.repo.security.authentication.external.RemoteUserMapper remoteUserMapper)
Sets the remote user mapper.- Parameters:
remoteUserMapper- the remote user mapper
-
createUserObject
protected SessionUser createUserObject(String userName, String ticket, org.alfresco.service.cmr.repository.NodeRef personNode, org.alfresco.service.cmr.repository.NodeRef homeSpaceRef)
Create the user object that will be stored in the session.- Parameters:
userName- Stringticket- StringpersonNode- NodeRefhomeSpaceRef- NodeRef- Returns:
- SessionUser
-
getSessionUser
protected SessionUser getSessionUser(javax.servlet.ServletContext servletContext, javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, boolean externalAuth)
Callback to get the specific impl of the Session User for a filter.- Parameters:
servletContext- the servlet contexthttpServletRequest- the http servlet requesthttpServletResponse- the http servlet responseexternalAuth- has the user been authenticated by SSO?- Returns:
- User from the session
-
invalidateSession
protected void invalidateSession(javax.servlet.http.HttpServletRequest req)
Remove the user from the session and expire the session - after failed ticket auth.- Parameters:
req- HttpServletRequest
-
doInSystemTransaction
protected <T> T doInSystemTransaction(org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback<T> callback)
Executes a callback in a transaction as the system user- Parameters:
callback- the callback- Returns:
- the return value from the callback
-
getUserAttributeName
protected final String getUserAttributeName()
Return the user object session attribute name.- Returns:
- the user object session attribute name
-
setUserAttributeName
protected final void setUserAttributeName(String userAttr)
Set the user object attribute name.- Parameters:
userAttr- the user object session attribute name
-
createUserEnvironment
protected SessionUser createUserEnvironment(javax.servlet.http.HttpSession session, String userName, String ticket, boolean externalAuth) throws IOException, javax.servlet.ServletException
Callback to create the User environment as appropriate for a filter impl.- Parameters:
session- HttpSessionuserName- Stringticket- the ticketexternalAuth- has the user been authenticated by SSO?- Returns:
- SessionUser
- Throws:
IOException- Signals that an I/O exception has occurred.javax.servlet.ServletException- the servlet exception
-
createUserEnvironment
protected SessionUser createUserEnvironment(javax.servlet.http.HttpSession session, String userName) throws IOException, javax.servlet.ServletException
Callback to create the User environment as appropriate for a filter impl- Parameters:
session- HttpSessionuserName- String- Returns:
- SessionUser
- Throws:
IOExceptionjavax.servlet.ServletException
-
getLogger
protected abstract org.apache.commons.logging.Log getLogger()
Return the logger.- Returns:
- Log
-
handleLoginForm
protected boolean handleLoginForm(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) throws IOException, javax.servlet.ServletExceptionHandles the login form directly, allowing management of the session user.- Parameters:
req- the requestres- the response- Throws:
IOException- Signals that an I/O exception has occurred.javax.servlet.ServletException- on error
-
-