spring-security(2)
记录一下spring security的配置
配置详解
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
<!-- 指定登录页面不拦截 -->
<http security="none" pattern="/login.htm"/>
<http auto-config="true">
<!--
login-page 指定登录页面
username-parameter 登录的用户名,默认是“j_username”
password-parameter 登录的密码,默认是“j_password”
login-processing-url 登录提交的页面,默认是“/j-spring-security-check”
default-target-url 指定登录成功后跳转的界面
authentication-success-handler-ref 指定登录成功后调用的服务,这里指定后default-target-url就不生效, AuthenticationSuccessHandler
authentication-failure-url 指定登录失败后跳转的界面
authentication-failure-handler-ref="authenticationFailHandler" 指定登录失败后调用的服务,这里指定后authentication-failure-url就不生效, SimpleUrlAuthenticationFailureHandler
-->
<form-login
login-page="/login.htm"
username-parameter="username"
password-parameter="password"
login-processing-url="/spring-security-check"
default-target-url="/user/welcome.htm"
authentication-success-handler-ref="authenticationSuccessHandler"
authentication-failure-url="/user/fail.htm"
authentication-failure-handler-ref="authenticationFailHandler"
/>
<!--禁用CSRF保护功能 默认开启-->
<csrf disabled="true"/>
<!--
退出登录配置
logout-url:退出登录提交的页面,默认j_spring_security_logout
success-handler-ref: 成功退出登录的事件 LogoutSuccessHandler
-->
<logout logout-url="/spring_security_logout" success-handler-ref="logoutSuccessHandler" />
<!--intercept-url定义了一个权限控制的规则。
pattern:进行权限控制的url
access:需要什么权限,以逗号分隔的角色列表,只需拥有其中的一个角色就能成功访问
-->
<intercept-url pattern="/" access="hasRole('role1')" />
<intercept-url pattern="/*.htm" access="hasRole('role1')"/>
<intercept-url pattern="/**/.htm" access="hasRole('role1')"/>
</http>
<!--开启权限注解支持 -->
<global-method-security secured-annotations="enabled" jsr250-annotations="enabled"/>
<beans:bean id="userService" class="com.yitop.feng.service.UserService"/>
<beans:bean id="authenticationSuccessHandler" class="com.yitop.feng.service.security.AuthenticationSuccessHandlerImpl" />
<beans:bean id="authenticationFailHandler" class="com.yitop.feng.service.security.AuthenticationFailHandlerImpl" />
<!--
authentication-manager元素指定了一个AuthenticationManager,其需要一个AuthenticationProvider来进行真正的认证,
默认情况下authentication-provider对应一个UserDetailsService来获取用户信息(即查询数据库)。
-->
<authentication-manager>
<authentication-provider user-service-ref="userService">
<!--
hash 指定密码加密方式 plaintext sha sha-256 md4 md5 {sha} {ssha}
加密算法 PasswordEncoder 实现类 plaintext PlaintextPasswordEncoder
sha ShaPasswordEncoder
sha-256 ShaPasswordEncoder,使用时new ShaPasswordEncoder(256)
md4 Md4PasswordEncoder
md5 Md5PasswordEncoder
{sha} LdapShaPasswordEncoder
{ssha} LdapShaPasswordEncoder
base64 表示是否需要对加密后的密码使用BASE64进行编码,默认是false
-->
<password-encoder hash="md5" base64="true"/>
</authentication-provider>
</authentication-manager>
</beans:beans>
url权限控制表达式
hasRole([role]) 当前用户是否拥有指定角色。
hasAnyRole([role1,role2]) 多个角色是一个以逗号进行分隔的字符串。如果当前用户拥有指定角色中的任意一个则返回true。
hasAuthority([auth]) 等同于hasRole
hasAnyAuthority([auth1,auth2]) 等同于hasAnyRole
Principle 代表当前用户的principle对象
authentication 直接从SecurityContext获取的当前Authentication对象
permitAll 允许所有
denyAll 拒绝所有
注解功能
<!-- 开启注解功能 -->
<security:global-method-security jsr250-annotations="enabled"/>
@RolesAllowed({"ROLE_USER", "ROLE_ADMIN"})
public User find(int id) {
System.out.println("find user by id............." + id);
return null;
}
//允许ROLE_USER或ROLE_ADMIN使用find方法
//@PermitAll 允许所有
//@DenyAll 拒绝所有
spring-security(2)的更多相关文章
- Spring Security OAuth2 开发指南
官方原文:http://projects.spring.io/spring-security-oauth/docs/oauth2.html 翻译及修改补充:Alex Liao. 转载请注明来源:htt ...
- spring mvc 和spring security配置 web.xml设置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmln ...
- SPRING SECURITY JAVA配置:Web Security
在前一篇,我已经介绍了Spring Security Java配置,也概括的介绍了一下这个项目方方面面.在这篇文章中,我们来看一看一个简单的基于web security配置的例子.之后我们再来作更多的 ...
- 【OAuth2.0】Spring Security OAuth2.0篇之初识
不吐不快 因为项目需求开始接触OAuth2.0授权协议.断断续续接触了有两周左右的时间.不得不吐槽的,依然是自己的学习习惯问题,总是着急想了解一切,习惯性地钻牛角尖去理解小的细节,而不是从宏观上去掌握 ...
- spring security oauth2.0 实现
oauth应该属于security的一部分.关于oauth的的相关知识可以查看阮一峰的文章:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html ...
- Spring Security(08)——intercept-url配置
http://elim.iteye.com/blog/2161056 Spring Security(08)--intercept-url配置 博客分类: spring Security Spring ...
- Spring Security控制权限
Spring Security控制权限 1,配置过滤器 为了在项目中使用Spring Security控制权限,首先要在web.xml中配置过滤器,这样我们就可以控制对这个项目的每个请求了. < ...
- Spring Security笔记:Hello World
本文演示了Spring Security的最最基本用法,二个页面(或理解成二个url),一个需要登录认证后才能访问(比如:../admin/),一个可匿名访问(比如:../welcome) 注:以下内 ...
- Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken
在前面的学习中,配置文件中的<http>...</http>都是采用的auto-config="true"这种自动配置模式,根据Spring Securit ...
- spring session 和 spring security整合
背景: 我要做的系统前面放置zuul. 使用自己公司提供的单点登录服务.后面的业务应用也是spring boot支撑的rest服务. 目标: 使用spring security管理权限包括权限.用户请 ...
随机推荐
- 1、wei-d-s嵌入式与PC区别,LED等的点亮以及调用C函数
tiny6410之点亮Led灯: .global _start _start: ldr r0,0x70000000 //目的是把外设基地址告诉cpu orr r0,r0,#0x13 mcr p15,0 ...
- Servlet的Cookie值保存与获取
今天测试设置和获取Cookie遇到了一点小问题,很奇怪的问题:把J2ee服务部署在本地 8080端口:访问任何一个服务时,如果客户端没有cookie,则下发cookie, 如果客户端已经有了该cook ...
- 2018.06.30 BZOJ4443: [Scoi2015]小凸玩矩阵(二分加二分图匹配)
4443: [Scoi2015]小凸玩矩阵 Time Limit: 10 Sec Memory Limit: 128 MB Description 小凸和小方是好朋友,小方给小凸一个N*M(N< ...
- 2018.09.05 任务安排(斜率优化dp)
描述 这道题目说的是,给出了n项必须按照顺序完成的任务,每项任务有它需要占用机器的时间和价值.现在我们有一台机器可以使用,它每次可以完成一批任务,完成这批任务所需的时间为一个启动机器的时间S加上所有任 ...
- 2018.08.31 bzoj3566: [SHOI2014]概率充电器(概率dp+容斥原理)
传送门 概率dp好题啊. 用f[i]" role="presentation" style="position: relative;">f[i] ...
- systemctl自定义service
应用场景:开启自启动运行脚本/usr/local/manage.sh 一.服务介绍 CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户 ...
- int最大值+1为什么是-2147483648最小值-1为什么是2147483647
今天一个新手学编程就问到这个问题,很多人第一次学编程肯定会遇到这个问题,大部分都知道是溢出之类的,用源码和补码就很容易说明 int i = -2147483648 ;这是不允许的 VS里报的错 err ...
- Memcached 应用场景
1. 把java对象序列化成base64 存入缓存,不同平台可以反序列化. 2. 通过key去重复 3. 保存一些信息,供所有平台使用
- cxf-rs client 调用
org.apache.cxf.jaxrs.client.WebClient get调用 @GET @Path("/echo/{input}") @Produces("te ...
- Scrapy爬取美女图片第三集 代理ip(上) (原创)
首先说一声,让大家久等了.本来打算那天进行更新的,可是一细想,也只有我这样的单身狗还在做科研,大家可能没心思看更新的文章,所以就拖到了今天.不过忙了521,522这一天半,我把数据库也添加进来了,修复 ...