spring security3 頁面許可權標籤問題

來源:互聯網
上載者:User

本文章摘編、轉載需要註明來源 http://blog.csdn.net/shadowsick/article/details/8868863

當我們自訂了spring security3 的過濾鏈的時候發現頁面許可權控制標籤<sec:authorize之類的已經不能起效了,這是因為我們缺少一個必須的執行個體

所以找了下源碼看到需要一個DefaultWebInvocationPrivilegeEvaluator決策器執行個體,直接配置一個執行個體然後注入FilterSecurityInterceptor的執行個體即可

<!-- 頁面標籤許可權功能依賴 --><bean id="webInvocationFilter"class="org.springframework.security.web.access.DefaultWebInvocationPrivilegeEvaluator"><constructor-arg ref="filterSecurityInterceptor" /></bean>

這樣我們就可以在頁面繼續使用security的標籤

<%@ page language="java" pageEncoding="UTF-8"%><%@ taglib prefix='sec' uri='http://www.springframework.org/security/tags' %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>SPRING SECURITY TEST CENTER</title>    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/css" href="styles.css">    -->  </head>    <body>      使用者名稱:<sec:authentication property="name" />, 歡迎來到首頁!<br>      擁有許可權:<sec:authentication property="principal.authorities" /><br>      是否可用:<sec:authentication property="principal.enabled" /><br>      未被鎖定:<sec:authentication property="principal.accountNonLocked" /><br>       <sec:authorize ifAnyGranted="ROLE_SUPERVISOR">您是超級管理員,可看到該資訊:(這裡可以用逗號分隔,加入多個角色你擁有管理員權限)</sec:authorize><br>        <sec:authorize url='/test.jsp'>你登陸成功了可以看到: <a href="<%=path %>/supervisor/index.jsp">管理頁面</a></sec:authorize>      <br><a href="<%=path %>/logout">登出登入</a>  </body></html>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.