1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
public abstract class AbstractRemoteAdministrationServlet extends HttpServlet
{
protected void service( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
try
{
if( !checkForAuthorization( request ) ) // Ma méthode d'authentification
{
response.sendError( HttpServletResponse.SC_UNAUTHORIZED );
return;
}
super.service( request, response );
}
catch( LoginException e )
{
response.sendError( HttpServletResponse.SC_UNAUTHORIZED, e.getMessage() );
}
catch( RepositoryException e )
{
response.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage() );
}
}
// Ça c'est mon code d'authentification mais à toi de faire ce que tu veux ici
protected boolean checkForAuthorization( HttpServletRequest request )
throws LoginException, RepositoryException, ServletException
{
Repository repository = RepositoryAccessServlet.getRepository( getServletContext() );
BasicCredentialsProvider credProvider = new BasicCredentialsProvider( HeadersConstants.HTTP_HEADER_AUTHORIZATION );
Credentials credentials = credProvider.getCredentials( request );
session = repository.login( credentials );
return true;
}
} |
Partager