`
jasonw68
  • 浏览: 153094 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring Security 标签使用

阅读更多
    1. 5:完善web页面验证规则
    2. Java代码
    1. <http auto-config="true">  
    2. <intercept-url pattern="/js/**" filters="none"/>  
    3. <intercept-url pattern="/css/**" filters="none"/>  
    4. <intercept-url pattern="/images/**" filters="none"/>  
    5. <intercept-url pattern="/a.jsp" access="ROLE_A" />  
    6. <intercept-url pattern="/b.jsp" access="ROLE_B" />  
    7. <intercept-url pattern="/c.jsp" access="ROLE_A, ROLE_B" />  
    8. <intercept-url pattern="/**" access="ROLE_USER" />  
    9. </http>  
    1. <http auto-config="true"> <intercept-url pattern="/js/**" filters="none"/> <intercept-url pattern="/css/**" filters="none"/> <intercept-url pattern="/images/**" filters="none"/> <intercept-url pattern="/a.jsp" access="ROLE_A" /> <intercept-url pattern="/b.jsp" access="ROLE_B" /> <intercept-url pattern="/c.jsp" access="ROLE_A, ROLE_B" /> <intercept-url pattern="/**" access="ROLE_USER" /> </http>
    1. 6:自定义验证配置
    2. Java代码
    1. <!-- 指 定登陆页面、成功页面、失败页面-->  
    2. <form-login login-page="/login.jsp" default-target-url="/index.jsp" authentication-failure-url="/login.jsp" />  
    3. <!-- 尝 试访问没有权限的页面时跳转的页面 -->  
    4. <access-denied-handler error-page="/accessDenied.jsp"/>  
    5. <!-- 使 用记住用户名、密码功能,指定数据源和加密的key -->  
    6. <remember-me data-source-ref="dataSource" />  
    7. <!-- logout 页面,logout后清除session -->  
    8. <logout invalidate-session="true" logout-success-url="/login.jsp" />  
    9. <!-- session 失 效后跳转的页面,最大登陆次数 -->  
    10. <session-management invalid-session-url="/sessionTimeout.htm">  
    11. <concurrency-control max-sessions="1" expired-url="/sessionTimeout.htm" />  
    12. </session-management>  
    13. </http>  
    14. 可 以使用SS自带的登陆页面作为login.jsp的模板  
    1. <http auto-config="true"> <!-- 指定登陆页面、成功页面、失败页面--> <form-login login-page="/login.jsp" default-target-url="/index.jsp" authentication-failure-url="/login.jsp" /> <!-- 尝试访问没有权限的页面时跳转的页面 --> <access-denied-handler error-page="/accessDenied.jsp"/> <!-- 使用记住用户名、密码功能,指定数据源和加密的key --> <remember-me data-source-ref="dataSource" /> <!-- logout页面,logout后清除session --> <logout invalidate-session="true" logout-success-url="/login.jsp" /> <!-- session 失效后跳转的页面,最大登陆次数 --> <session-management invalid-session-url="/sessionTimeout.htm"> <concurrency-control max-sessions="1" expired-url="/sessionTimeout.htm" /> </session-management> </http> 可以使用SS自带的登陆页面作为login.jsp的模板
    1. 7:本地化消息输出
      拷贝本地化资源文件后,在配置文件中加载该文件:
    2. Java代码
    1. <!-- 加 载错误信息资源文件 -->  
    2. <beans:bean id="messageSource"   
    3. class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
    4. <beans:property name="basename" value="classpath:messages"/>  
    5. </beans:bean>  
    6. 资 源文件在SS核心包:spring-security-core-3.0.2.RELEASE.jar的orgspringframeworksecurity目录 中  
    1. <!-- 加载错误信息资源文件 --> <beans:bean id="messageSource"  class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <beans:property name="basename" value="classpath:messages"/> </beans:bean> 资源文件在SS核心包:spring-security-core-3.0.2.RELEASE.jar的orgspringframeworksecurity目录中
    1. 8:在web页面中获取用户信息
    2. Java代码
    1. 方式 一:Java代码  
    2. Authentication auth = SecurityContextHolder.getContext().getAuthentication();  
    3. Collection<GrantedAuthority> col = auth.getAuthorities();  
    4. 方 式二:标签库  
    5. <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>  
    6. <sec:authentication property="name“/>  
    7. <sec:authentication property="authorities“/>  
    1. 方式一:Java代码 Authentication auth = SecurityContextHolder.getContext().getAuthentication(); Collection<GrantedAuthority> col = auth.getAuthorities(); 方式二:标签库 <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> <sec:authentication property="name“/> <sec:authentication property="authorities“/>
    1. 9:在web页面进行元素安全控制
    2. Java代码
    1. 方式一  
    2. <sec:authorizeifAnyGranted="ROLE_A">  
    3. <a href="a.jsp">你可以访问a.jsp</a>  
    4. </sec:authorize>  
    5. <sec:authorizeifNotGranted="ROLE_A">  
    6. 你 不可以访问a.jsp  
    7. </sec:authorize>  
    8. 方 式二  
    9. <sec:authorizeurl="/a.jsp">  
    10. <a href="a.jsp">你可以访问a.jsp</a>  
    11. </sec:authorize>  
    1. 方式一 <sec:authorizeifAnyGranted="ROLE_A"> <a href="a.jsp">你可以访问a.jsp</a> </sec:authorize> <sec:authorizeifNotGranted="ROLE_A"> 你不可以访问a.jsp </sec:authorize> 方式二 <sec:authorizeurl="/a.jsp"> <a href="a.jsp">你可以访问a.jsp</a> </sec:authorize>
    1. 10:全局方法安全控制
    2. Java代码
    1. <global-method-security pre-post-annotations="enabled">  
    2. <protect-pointcut expression="execution(* com.xasxt.*Service.add*(..))" access="ROLE_A"/>  
    3. <protect-pointcut expression="execution(* com.xasxt.*Service.delete*(..))" access="ROLE_B"/>  
    4. </global-method-security>  
    5. 此 处使用了AspectJ中常用的切入点表达式(百度:AspectJ execution)  
    1. <global-method-security pre-post-annotations="enabled"> <protect-pointcut expression="execution(* com.xasxt.*Service.add*(..))" access="ROLE_A"/> <protect-pointcut expression="execution(* com.xasxt.*Service.delete*(..))" access="ROLE_B"/> </global-method-security> 此处使用了AspectJ中常用的切入点表达式(百度:AspectJ execution)
    1. 11:使用注解进行方法安全控制
    2. Java代码
    1. public class DemoService {  
    2. @PreAuthorize("hasRole(&apos;ROLE_A&apos;)")  
    3. public void methodA() {  
    4. }  
    5. @PreAuthorize("hasAnyRole(&apos;ROLE_A, ROLE_B&apos;)")  
    6. public void methodB() {  
    7. }  
    8. }  
    9. hasRole 与hasAnyRole为SS通用内置表达式(google : spring security Common Built- In Expressions) 
  • 分享到:
    评论
    4 楼 leon.s.kennedy 2012-05-21  
    实际上<sec:authorize ifAllGranted="ROLE_USER">可以访问</sec:authorize>
    是这么干的吗?
    角色被写死在JSP 怎么维护?
    3 楼 leon.s.kennedy 2012-05-12  
    jasonw68 写道
    这只是一个demo 实际怎么应用要看自己项目设计的需要!


    请问实际项目中
    <sec:authorizeurl="/a.jsp"> 
    <a href="a.jsp">你可以访问a.jsp</a> 
    </sec:authorize>
    您试过吗
    2 楼 jasonw68 2012-05-11  
    这只是一个demo 实际怎么应用要看自己项目设计的需要!
    1 楼 leon.s.kennedy 2012-05-11  
    引用:
    在web页面进行元素安全控制
    Java代码
    方式一 
    <sec:authorizeifAnyGranted="ROLE_A"> 
    <a href="a.jsp">你可以访问a.jsp</a> 
    </sec:authorize> 
    <sec:authorizeifNotGranted="ROLE_A"> 
    你 不可以访问a.jsp 
    </sec:authorize> 
    方 式二 
    <sec:authorizeurl="/a.jsp"> 
    <a href="a.jsp">你可以访问a.jsp</a> 
    </sec:authorize>
    ---------------------------------------
    请问您如此把角色写死在JSP标签中,那角色就不能维护了吧,不能删除
    也就不能为角色再分配资源

    方式二:url和role必须写死在security.xml中,您认为这样设计合理吗?

    相关推荐

      Spring Security 资料合集

      这三份资料——"实战Spring Security 3.x.pdf"、"Spring Security 3.pdf" 和 "Spring Security使用手册.pdf" 将深入探讨这些概念,并提供实践指导,帮助读者掌握如何在实际项目中应用Spring Security。通过学习这些...

      Spring Security使用手册

      使用命名空间配置,可以在`spring-security.xml`配置文件中通过`&lt;http&gt;`标签来定义安全规则,并通过`&lt;user-service&gt;`标签配置用户信息和权限。 对于用户权限的管理,可以使用数据库来存储用户信息和权限规则。这...

      最详细Spring Security学习资料(源码)

      Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的...Web集成:Spring Security能够无缝集成到Spring框架和Spring MVC中,提供了过滤器、标签库等工具,简化了权限控制和

      spring boot +spring security+thymeleaf实现权限

      在本文中,我们将深入探讨如何使用Spring Boot、Spring Security和Thymeleaf这三个强大的Java技术栈组件来实现一个全面的权限管理系统,同时涵盖Remember-Me功能。Spring Boot简化了Spring应用的开发,Spring ...

      Spring Security 中文教程.pdf

      ### Spring Security 中文教程知识点概览 #### 一、Spring Security简介 - **Spring Security**是一种全面的安全服务框架,主要用于基于J2EE的企业应用程序。它与Spring框架紧密结合,旨在简化安全性的实现,使得...

      spring security3 开发手册

      Spring Security标签库允许在JSP页面中展示安全相关的元素,比如登陆状态、认证信息、访问控制列表等。 ### 保护method篇 #### 保护方法调用 Spring Security提供了对方法调用的保护,可以控制全局范围的方法权限...

      springsecurity3.1.pdf

      标题:springsecurity3.1.pdf 描述:springsecurity3.1.pdf 标签:spring security3.1 部分内容:SpringSecurity Reference Documentation by Ben Alex and Luke Taylor 3.1.4.RELEASE **一、Spring Security 3.1...

      spring security3配置和使用实例+教程

      教程文档`教你使用_SpringSecurity_3.0_52页.pdf`会详细指导你如何一步步配置和使用Spring Security。它应该包含了配置文件的示例、如何集成到Spring应用中、如何创建自定义认证逻辑以及如何进行授权设置等内容。...

      spring security 使用及配置

      Spring Security 还提供了多种标签库来控制页面元素的安全。 配置 Spring Security 的配置主要包括三个方面:Web.xml、 Spring 配置文件和数据库配置。在 Web.xml 文件中需要配置 Spring Security 的 Filter 和 ...

      Spring集成SpringSecurity依赖包

      标题中提到的"Spring集成SpringSecurity依赖包"应该包含了这些必要的依赖,包括Spring Security本身和可能的Spring MVC依赖。 2. **配置Spring Security**:创建一个配置类,继承自`WebSecurityConfigurerAdapter`...

      spring security 3 多页面登录 小秘密小运气

      文章中提到的“工具”标签可能是指使用Spring Security与其他工具(如Spring MVC、MyBatis等)集成,或者使用IDE(如Eclipse、IntelliJ IDEA)进行开发时的辅助工具和插件。 以上是Spring Security 3在实现多页面...

      Spring Security 源码

      Spring Security 是一个强大的和高度可定制的身份验证和访问控制...同时,标签中的"ssh3源码"可能是指Spring Security的旧版本,但现代版本已经更新到Spring Security 5.x,所以要确保查阅的是最新版本的文档和源码。

      springsecurity所有jar包

      5. **spring-security-taglibs**:包含Spring Security的JSTL标签库,如`sec:authorize`,使得在JSP页面上实现安全控制变得简单。 6. **spring-security-ldap**:这个模块支持与LDAP(轻量级目录访问协议)服务器...

      spring-boot spring-security-oauth2 完整demo

      在这个完整的demo中,开发者已经构建了一个使用Spring Boot、Spring Security和OAuth2的系统。关键在于如何配置OAuth2以实现微信式授权。微信授权流程通常包括以下步骤: 1. 用户访问应用,应用重定向至微信授权...

      springsecurity3.0.5应用

      标签中的“工具”暗示Spring Security可以作为一种工具,帮助开发者快速构建安全的Web应用。压缩包文件“ss3”可能包含了Spring Security 3.0.5的相关示例代码或者配置文件,可以帮助开发者进一步了解和学习该版本的...

      spring-security3入门教程

      - **过滤器链**:Spring Security 使用一系列预定义的过滤器,如 ChannelProcessingFilter、SecurityContextPersistenceFilter、LogoutFilter 和 UsernamePasswordAuthenticationFilter,它们在请求处理过程中拦截...

      spring security进级篇 V 自定义标签控制显示

      这通常通过使用Spring Security的JSP标签库来实现,例如`&lt;sec:authorize&gt;`,它可以判断当前用户是否有权限访问某个部分的页面。然而,当标准标签无法满足需求时,我们可能需要创建自定义标签。 自定义JSP标签的实现...

      spring-security-crypto-5.5.2-API文档-中文版.zip

      标签:springframework、security、spring、crypto、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释...

      spring-security-oauth2-2.3.5.RELEASE-API文档-中文版.zip

      标签:spring、security、springframework、oauth2、oauth、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代

      spring-security-core-5.0.7.RELEASE-API文档-中文版.zip

      标签:springframework、security、spring、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和...

    Global site tag (gtag.js) - Google Analytics