博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Security (一)
阅读量:5332 次
发布时间:2019-06-14

本文共 3572 字,大约阅读时间需要 11 分钟。

一、pom.xml

org.springframework.security
spring-security-core
3.2.2.RELEASE
org.springframework.security
spring-security-web
3.2.2.RELEASE
org.springframework.security
spring-security-config
3.2.2.RELEASE
org.springframework.security
spring-security-taglibs
3.2.2.RELEASE
org.springframework.security
spring-security-acl
3.2.2.RELEASE
pom.xml

二、web.xml

在原本spring的基础上添加

contextConfigLocation
classpath:spring.xml,classpath:spring-hibernate.xml,classpath:spring-security.xml
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
web.xml

classpath:maven项目中放在src/main/resources下

三、spring-security.xml

spring-security.xml

login-page:自定义登录页面是通过login-page属性来指定的。

login-processing-url:表示登录时提交的地址,默认是“/j-spring-security-check”。这个只是Spring Security用来标记登录页面使用的提交地址,真正关于登录这个请求是不需要用户自己处理的。

default-target-url:通过指定form-login元素的default-target-url属性,我们可以让用户在直接登录后跳转到指定的页面。如果想让用户不管是直接请求登录页面,还是通过Spring Security引导过来的,登录之后都跳转到指定的页面,我们可以通过指定form-login元素的always-use-default-target属性为true来达到这一效果。

authentication-failure-url:认证失败时跳转的页

error-page登录失败时跳转的页

logout-success-url:登陆成功后默认跳转页面

跳过登陆验证可以配置access="IS_AUTHENTICATED_ANONYMOUSLY"来实现

四、UserDetailService.java

@Transactional(readOnly = true)public class UserDetailsServiceImpl implements UserDetailsService {    @Autowired    private UserManager userManager;        @Override    public UserDetails loadUserByUsername(String username)throws UsernameNotFoundException {                User user = userManager.findUserByLoginName(username);                if (user == null) {            throw new UsernameNotFoundException("用户" + username + " 不存在");        }                // 获得用户所有角色权限        Set
grantedAuths = obtainGrantedAuthorities(user); // 初始化登录用户信息 OperatorDetails userDetails = new OperatorDetails(user.getName(), user.getPassword(), true, true, true, true, grantedAuths); return userDetails; } /** * 获得用户所有角色的权限. */ private Set
obtainGrantedAuthorities(User user) { Set
authSet = new HashSet
(); for (Role role : user.getRoleList()) { authSet.add(new SimpleGrantedAuthority(role.getRole())); } return authSet; } }
UserDetailsServiceImpl.java

 SimpleGrantedAuthority中传String参数   例如ROLE_USER  ROLE_ADMIN

转载于:https://www.cnblogs.com/sishishinn/p/5473980.html

你可能感兴趣的文章
新手村之循环!循环!循环!
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>