Création d'un filtre simple pour une application Web triviale.Écriture du filtre d'interception pour l'authentification de l'utilisateur
- connexion
- registre
- maison
- fonction
si l'utilisateur n'a pas connecté en utilisant le nom de login "admin", ou d'accéder à la/des ressources à domicile ou/ressource de fonctionnalité, ils doivent être redirigés vers la page de connexion.
Cependant, il semble que je cours dans un problème de boucle de redirection. Quel est le problème avec cette approche? Je pense que c'est une approche de solution incorrecte pour une telle exigence.
public class LoginInterceptor extends HandlerInterceptorAdapter {
private static final Logger logger = Logger.getLogger("LoginInterceptor.class");
// to be used checking session management for user.
@Override
public boolean preHandle(HttpServletRequest request,HttpServletResponse response,
Object handler) throws Exception {
logger.log(Level.INFO, "[][][][][] +++ prehandle");
if (request.getAttribute("username") != null) {
if (request.getAttribute("username").equals("admin")) {
return true;
} else
response.sendRedirect("/sessionmanagement/login");
return false;
} else if (request.getAttribute("username") == null & !request.getRequestURI().equals("/login")) {
// return false and redirect to login.
response.sendRedirect("/sessionmanagement/login");
return false;
}
// return false and redirect to login.
response.sendRedirect("/sessionmanagement/register");
return false;
}
}
quel est votre modèle d'URL pour 'LoginInterceptor'? – destan
Ajouter également si la condition pour vérifier si URL de demande contient/sessionmanagement, ce qui vous aidera à éviter la boucle. –
/* est le modèle d'URL pour l'intercepteur – Catresl