工具
-
idea 2018.2
-
moven 3.6
-
mysql 5.5
-
JDK1.8
-
tomcat 8.0
基于spring-security框架下实现
一、导入jar包
导入spring-security的版本和依赖
版本
<spring.security.version>5.0.1.RELEASE</spring.security.version>
依赖
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.security.version}</version>
</dependency>
二、web.xml中添加spring-security过滤器
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三、添加springsecurity.xml
在mapper包下添加springsecurity.xml
四、Web.xml 加载springsecurity.xml
添加以下标识信息五、进行编码
- 添加bean中role类,内容如下
- userinfo中加入roles变量,添加setter、getter方法并改变tostring()方法
- userDao中加入**方法
- 创建roleDao接口,添加**方法
- 查找数据库
- service中代码如下:
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user=null;
UserInfo userInfo=userDao.selectByusername(username);//得到对象id
if(userInfo!=null)
{
List roles=roleDao.findroleByUserid(userInfo.getId());
userInfo.setRoles(roles);
user=new User(userInfo.getUsername(),"{noop}"+userInfo.getPassword(),getAuthories(roles)) ;//名字,密码,权限
}
return user;
}
private List getAuthories(List roles) {
List list=new ArrayList<>();
for (Role role:roles)
{
list.add(new SimpleGrantedAuthority(“ROLE_”+role.getRoleName()));
}
return list;
}>
7.在jsp中加入以下信息
aside.jsp
header.jsp
login.jsp
8.效果图