【问题标题】:Access session scoped variable in spring interceptor在spring拦截器中访问会话范围变量
【发布时间】:2015-11-23 20:20:03
【问题描述】:

如何在 Spring 拦截器中访问会话范围的变量?

会话范围类:

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

控制器:

@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 {
    }
}

在 prehandle 中,我想检查用户是否已登录(还有其他一些检查),我如何在此处访问会话范围的用户变量?在 Interceptor 类中自动装配用户会引发异常。

【问题讨论】:

    标签: spring spring-mvc


    【解决方案1】:

    您应该能够使用以下代码访问您的会话范围用户:

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

    查看相关帖子hereorg.springframework.aop.scope.ScopedProxyUtils 类。

    【讨论】:

    • 我得到空值
    猜你喜欢
    • 2011-06-07
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2014-03-06
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多