【问题标题】:Spring Security Session春季安全会议
【发布时间】:2011-12-31 00:50:22
【问题描述】:

我对此感到困惑。我已经成功设置了 Spring Security(基于角色的访问等),但我不明白如何向 Spring 创建的会话添加一些内容?或者我应该使用另一个会话来存储 DTO 属性?如果我使用自己的会话,Spring Security 会保护它吗?它对我一点也不透明:

<p id="layoutdims">
    <strong>
        Logged in as <security:authentication property="principal.username" />
    </strong>
    <strong>
        Logged in as <% HttpSession hs = request.getSession();          %>
        <%=hs.getAttribute("principal.username") %>
    </strong>
</p>

如果 Spring Security 使用主会话,为什么 hs.getAttribute 给我 null?我对此感到非常愚蠢,尤其是当我完成了最复杂的部分时。

【问题讨论】:

    标签: session spring-security


    【解决方案1】:

    尝试获取会话对象如下

    ServletRequestAttributes attr = (ServletRequestAttributes)
            RequestContextHolder.currentRequestAttributes();
    HttpSession session= attr.getRequest().getSession(true); // true == allow create
    

    【讨论】:

    • 我能够拖动一些名为 SECURITY_CONTEXT 的东西。我觉得这种方法就像在挖胆,请您省略我的具体示例并告诉我您是如何做到的吗?和处理程序说? @RequestMapping(method = RequestMethod.GET, params = "reg") public String blablaBlabla(Model model) 在这里说吗?
    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 2013-12-22
    • 2018-11-30
    • 2012-02-17
    • 2011-06-21
    相关资源
    最近更新 更多