Comment puis-je obtenir HttpServletRequest et HttpServletResponse objet au Printemps de l'AOP
Je veux obtenir la réponse de l'objet au printemps AOP avant des conseils. Si la session est invalider je veux rediriger vers la page de connexion, mais impossible d'obtenir la HttpServletResponse objet dans l'Avant des conseils de méthode.
Essayé avec la manière suivante.
@Autowired
private HttpServletResponse response;
public void setResponse(HttpServletResponse response) {
this.response = response;
}
Stacktrace:
caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: javax.servlet.http.HttpServletResponse com.****.****.aspect.LogProvider.response; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.servlet.http.HttpServletResponse] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:506)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284)
... 33 more
Toute aide sera appréciée.
- Au lieu de permettra à l'autowiring, avez-vous essayé?
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
- Merci pour votre réponse. Je vais essayer avec cette
- Il m'a fallu l'objet HttpServletResponse.
- Désolé, mal lu votre question.
- Utiliser un
Filter
ouHandlerInterceptor
qui est mieux adapté à cette tâche. Ou de l'utilisation de Ressort de Sécurité qui gère beaucoup plus pour vous. - J'ai utilisé le Filtre de la première session sera nulle donc je redirige l'utilisateur vers la page de connexion, ne permettant pas de connexion aussi. Je vais essayer avec le HandlerInterceptor
- Fixer votre filtre pour exclure la page de connexion.
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, nous faisons redirection d'une page jsp c'est à dire à partir de l'INTERFACE utilisateur de la couche nous nous occupons de ce genre d'opération(redirection). Donc, j'espère que vous allez être en utilisant certains services restful dans votre application. Et pour la plupart des services restful nous aller pour la requête Asynchrone. Si c'est une combinaison de moteurs Asynchrones de repos et de services; et je suis sûr que vous allez utiliser dans votre application. Si votre session est invalide et que vous essayez d'accéder à effectuer toute opération sur "session", puis il vous feront atterrir dans 'l'exception IllegalStateException'. Pour ce type de scénario, veuillez suivre les ci-dessous centralisé 'Exception Manipulation" mécanisme prévu par JAX-RS: javax.ws.rs.ext.ExceptionMapper.
Veuillez suivre les étapes ci-dessous:
étape 1: Créer un définis par l'utilisateur décoché exception comme MyApplicationException:
étape 2: Créer un type défini par l'utilisateur de ExceptionMapper
étape 3:
In all your ajax request in the UI code check this Status Code and redirect to the login page.
C'est elle et vous sont effectués avec une meilleure mise en œuvre. Garanti...
Vous pouvez obtenir de réponse en vertu de la méthode:
The method getResponse() is undefined for the type ServletRequestAttributes
Pour obtenir la réponse de l'objet, vous pouvez utiliser ce code:
Pour obtenir l'objet de demande:
Si vous obtenez une
null
de réponse alors je peux voir la réponse n'est pas encore formé lorsque le contrôle est retourné. Alors la seule voie à suivre est d'aller avecinterceptors
.