2013-03-14 64 views
1

我有一个JSP页面,它以我在执行spring安全性之前登录的方式从我的accout对象中获取用户信息。我希望我的按钮在用户登录时显示我在div中的内容。我之前正在使用会话,但现在我正在使用Spring Security,它认为它未登录。我搜索了Google和Stack以尝试查找我的问题的答案,但我不断提出空白。这是我在JSP中所拥有的。Spring Security获得登录价值

<div id="topRightMenu" class="f-right"> 
       <% if( session.getAttribute("auth") == null 
         || session.getAttribute("auth").toString() == "false" 
         || session.getAttribute("Account") == null) { %> 


        <div id="login-form"> 
         <form action="/<c:url value='j_spring_security_check' />" method="post" id="loginForm"> 
          Username: <input class="text small" type="text" name="j_username" value="" /><br/> 
          Password: <input class="text small" type="password" name="j_password" value="" /><br/> 
          <label class="uiButton uiButtonLarge btnLogin"> 
           <input type="submit" name="btnLogin" value="login" /> 
          </label> 
         </form> 
        </div> 

        <button class="f-right" id="loginButton">Sign In</button> 

       <% } else { %> 
        <ul class="noMarkers grid"> 
         <li><a href="/account/edit/" title="Click to View Account Information">Account</a></li> 
         <li><a href="/profile/<%= Acc.getAccountID() %>" title="Click to View Your Profile">Profile</a></li> 
         <li><a href="/help" title="Click to Get Help">Help</a></li> 
         <li><a href="/account/logout" title="Log Out">Log Out</a></li> 
        </ul> 
       <% } %> 

按钮的符号应该改变的联系,但它不是。
在此先感谢。

回答

1

尝试使用taglib provided by Spring Security。特别地,可以使用的<sec:authorize>标签:

<sec:authorize access="isAuthenticated()"> 
    .... 
</sec:authorize> 

从它的文档:

如果配置的访问表达式评估为真对于当前已验证主要输出所述标记的主体的标记。

有关可以在access表达使用上面,检查参考文档的this section的功能的概述。

+0

我对于如何实际做到这一点还有点困惑。我现在在页面上添加了标签库,但是如何才能正常工作还不清楚。 – welfle18 2013-03-15 13:20:53

+0

尝试在单独的标签中包装原始'<% if %>'的两个分支:第一个使用'access =“isAnonymous()”'第二个使用'access =“isAuthenticated()”'。如果仍然无法解决问题,请使用新版本的JSP和问题的确切描述来更新您的问题,否则它不会很容易为您提供帮助。 – zagyi 2013-03-15 13:38:28

+0

谢谢你,我现在工作很好!谢谢您的帮助。 – welfle18 2013-03-15 14:02:46