中软实习第九天:使用springSecurity框架解决项目的安全性问题

    简介:今天的学习内容是权限设置,也就是使用springSecurity框架的使用,权限包括认证和授权。

    认证就是判断用户名和密码是否正确,授权就是判断一个用户是否有权利执行某些操作。

    下面开始写权限的具体操作。

    首先基础是昨天写过的内容。

    1.导入jar包,把下列代码加入pom文件中,代码如下:

    

5.0.5.RELEASE



            org.springframework.security
            spring-security-web
            ${spring.security.version}
        
        
            org.springframework.security
            spring-security-config
            ${spring.security.version}
        
        
            org.springframework.security
            spring-security-core
            ${spring.security.version}
        
        
            org.springframework.security
            spring-security-taglibs
            ${spring.security.version}
        

    2.在web.xml文件中添加过滤器,代码如下:

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

    3.写springsecurity.xml 核心配置文件,整个文件的代码如下:




    

    
    
    
    
    
    
    
    
        
        

        

        
        

        
        

    

    
    
        
            
        
    

    
    
    
    


    4.web.xml 里面加载springSecurity.xml,修改一行代码,修改后的代码如下

    classpath*:applicationContext.xml,classpath*:spring-security.xml

    5.改写service层的方法,service接口改写的如下:

public interface IUserService extends UserDetailsService

    实现类的方法改写如下:

    @Autowired
    private IRoleDao roleDao;

@Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        UserInfo userInfo=userDao.findByUsername(username);
        User user=null;
        if(userInfo!=null){
            List roles=roleDao.findRoleByUserId(userInfo.getId());
            userInfo.setRoles(roles);
            user=new User(userInfo.getUsername(),"{noop}"+userInfo.getPassword(),getAuthority(roles));
        }
        return user;
    }

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

    在此之前还要在数据库中增加两个表,如下图所示:

中软实习第九天:使用springSecurity框架解决项目的安全性问题_第1张图片中软实习第九天:使用springSecurity框架解决项目的安全性问题_第2张图片

    创建完成之后在bean层里面增加一个角色实体类,很简单就不发代码了。

    然后在dao层和mapper文件中同时增加对数据库的操作,通过用户ID获取用户的角色。

    6.改写页面,某些对普通用户设置不能使用的功能设置权限,代码如下:

    完成之后就完成了整个的权限设置。

你可能感兴趣的:(中软实习第九天:使用springSecurity框架解决项目的安全性问题)