读书人

spring security2【与数据库权限联系关

发布时间: 2013-10-08 16:29:07 作者: rapoo

spring security2【与数据库权限关联】

    设计数据库

?????????????

???????????? 数据库实体图:

???????????

??????????

?

??????2、将用户权限表与springsecurity相关联

?

?????????????????????使用自定义的provider

???????????????????

?


?

?

?

?


自己定义的loginfilter,必须继承UsernamePasswordAuthenticationFilter


?

import java.util.Collection;import org.springframework.security.core.GrantedAuthority;import org.springframework.security.core.userdetails.UserDetails;public class UserDetail implements UserDetails{private String password;private String username;private Collection<GrantedAuthority> grantedauthoritys;private boolean isEnabled;                                      //账户是否有效           @Overridepublic Collection<GrantedAuthority> getAuthorities() {// TODO Auto-generated method stubreturn grantedauthoritys;}@Overridepublic String getPassword() {// TODO Auto-generated method stubreturn "a4a88c0872bf652bb9ed803ece5fd6e82354838a9bf59ab4babb1dab322154e1";}@Overridepublic String getUsername() {// TODO Auto-generated method stubreturn "admin";}@Overridepublic boolean isAccountNonExpired() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isAccountNonLocked() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isCredentialsNonExpired() {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean isEnabled() {// TODO Auto-generated method stubreturn true;}}


这里面可以自己从数据库中进行得到密码,赋予权限,并且自定义权限字符串,然后每次登陆时就会把权限与配置文件中进行比较

?

暂时发现的缺点是不能进行动态的配置权限,但是可以自己进行补充,扩展,这点等分析详细后在补充,思路是找到权限验证的类,把用户输入的URL权限与当前用户的浏览申请的URL进行比对,为了考虑运行速度的问题,还必须要把所有的浏览权限保存在内存中,否则每次都会从数据库中进行查询,减低了效率

大家都想自定义实现权限验证,这种方法告诉大家了

好了,如果有问题,请留言,由于分析难度比较大,只能慢慢来了

读书人网 >其他数据库

热点推荐