spring-security与springmvc整合

一、导入pom坐标

        
            org.springframework.security
            spring-security-web
            5.0.1.RELEASE
        
        
            org.springframework.security
            spring-security-config
            5.0.1.RELEASE
        
        
            org.springframework.security
            spring-security-core
            5.0.1.RELEASE
        
        
            org.springframework.security
            spring-security-taglibs
            5.0.1.RELEASE
        

二、配置web.xml

注意:配置spring-security的过滤器时,filter-name的名称不能随意修改,只能为配置中所写的名称。

  
    springSecurityFilterChain
    org.springframework.web.filter.DelegatingFilterProxy
  
  
    springSecurityFilterChain
    /*
  

三、配置spring-security.xml配置信息



    
    
    
    
    
    
    
    
    
    
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    	
    
    
    
    
    	
    		
    		
    	
    
    
    
    
    

    

四、配置自定义UserDetailService实现类

注意:该自定义的service中,@Service中的注解名称,必须与Spring-security.xml中指定的名称必须相同。

@Service("userService")
public class UserServiceImpl implements UserDetailsService {


    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
       //第一步:通过用户名,去数据库查询用户信息
        //第二步:根据用户信息,实例化,处理自己的用户对象封装成UserDetails
        //如果是使用未加密的帐号和密码校验,请在用户名和密码前面,添加一个标识{noop}
        //  User user=new User(userInfo.getUsername(),"{noop}"+userInfo.getPassword(),getAuthority(userInfo.getRoles()));
        User user = new User(登录用户名, 从数据库查询出来的用户密码, 用户状态,false表示无效,true表示有效, true, true, true, 获取当前登录用户的角色列表));
        return user;
    }

    //作用就是返回一个List集合,集合中装入的是角色描述
    public List getAuthority(List roles) {

        List list = new ArrayList<>();
        for (Role role : roles) {
            list.add(new SimpleGrantedAuthority("ROLE_" + role.getRoleName()));
        }
        return list;
    }
}

五、测试

1、重新登录系统,访问任何一个请求,如果直接都跳转到 login.jsp的登录界面,则表示框架整合成功

2、输入一个正确的帐号和密码,如果报403(权限不足),则表示当前用户配置的角色权限有问题,请检查自定义实现的UserDetailServiceImpl类中,获取的用户角色列表名称中,是否有spring-security.xml中 任何一个角色。

你可能感兴趣的:(java技术,spring-security,权限框架整合)