如何在 Spring 拦截器中访问 session 范围变量?
session 范围类:
@Component
@Scope("session")
public class User {
}
Controller :
@Controller
@RequestMapping("/restricted")
@Scope("request")
public class RestrictedController {
@Autowired
private User user;
}
调度程序 servlet:
<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 {
}
}
在预处理中,我想检查用户是否已登录(还有其他一些检查),我如何在这里访问 session 范围的用户变量? Interceptor 类中 Autowiring 用户抛出异常。
最佳答案
您应该能够使用以下代码访问 session 范围内的用户:
request.getSession().getAttribute("scopedTarget.user");
请参阅相关帖子 here 和 org.springframework.aop.scope.ScopedProxyUtils
类。
关于spring - 在 Spring 拦截器中访问 session 范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32283450/