Переменная с областью действия сеанса доступа в spring interceptor



Как я могу получить доступ к переменной области сеанса в spring interceptor?



Класс с областью действия сеанса:



@Component
@Scope("session")
public class User {
}


Контроллер:



@Controller
@RequestMapping("/restricted")
@Scope("request")
public class RestrictedController {
@Autowired
private User user;
}


Сервлет диспетчера:



<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/restricted/*"/>
<bean class="com.interceptors.RestrictedInterceptor" />
</mvc:interceptor>
</mvc:interceptors>


Класс перехватчика:



public class RestrictedInterceptor extends HandlerInterceptorAdapter {

@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
}
}


В prehandle я хочу проверить, вошел ли пользователь в систему (некоторые другие проверки также), как я могу получить доступ к пользовательской переменной session scoped здесь? Пользователь Autowiring в классе Interceptor создает исключение.

428   1  

1 ответ:

Вы должны иметь возможность получить доступ к пользователю в области сеанса, используя следующий код:

request.getSession().getAttribute("scopedTarget.user");

Смотрите соответствующий постздесь и org.springframework.aop.scope.ScopedProxyUtils класс.

Comments

    Ничего не найдено.