gpt4 book ai didi

基于Spring框架的Shiro配置方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基于Spring框架的Shiro配置方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、在web.xml中添加shiro过滤器 。

?
1
2
3
4
5
6
7
8
9
10
11
<!-- Shiro filter-->
< filter >
< filter-name >shiroFilter</ filter-name >
< filter-class >
org.springframework.web.filter.DelegatingFilterProxy
</ filter-class >
</ filter >
< filter-mapping >
< filter-name >shiroFilter</ filter-name >
< url-pattern >/*</ url-pattern >
</ filter-mapping >

2、在Spring的applicationContext.xml中添加shiro配置 。

1、添加shiroFilter定义 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- Shiro Filter -->
< bean id = "shiroFilter" class = "org.apache.shiro.spring.web.ShiroFilterFactoryBean" >
  < property name = "securityManager" ref = "securityManager" />
  < property name = "loginUrl" value = "/login" />
  < property name = "successUrl" value = "/user/list" />
  < property name = "unauthorizedUrl" value = "/login" />
  < property name = "filterChainDefinitions" >
  < value >
  /login = anon
  /user/** = authc
  /role/edit/* = perms[role:edit]
  /role/save = perms[role:edit]
  /role/list = perms[role:view]
  /** = authc
  </ value >
  </ property >
</ bean >

2、添加securityManager定义 。

  。

复制代码 代码如下:

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
 <property name="realm" ref="myRealm" />
</bean>

  。

3、添加realm定义 。

  。

复制代码 代码如下:

<bean id=" myRealm" class="com...MyRealm" />

  。

3、实现MyRealm:继承AuthorizingRealm,并重写认证授权方法 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class MyRealm extends AuthorizingRealm{
 
  private AccountManager accountManager;
  public void setAccountManager(AccountManager accountManager) {
  this.accountManager = accountManager;
  }
 
  /**
  * 授权信息
  */
  protected AuthorizationInfo doGetAuthorizationInfo(
  PrincipalCollection principals) {
  String username=(String)principals.fromRealm(getName()).iterator().next();
  if( username != null ){
  User user = accountManager.get( username );
  if( user != null && user.getRoles() != null ){
  SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
  for( SecurityRole each: user.getRoles() ){
   info.addRole(each.getName());
   info.addStringPermissions(each.getPermissionsAsString());
  }
  return info;
  }
  }
  return null;
  }
 
  /**
  * 认证信息
  */
  protected AuthenticationInfo doGetAuthenticationInfo(
  AuthenticationToken authcToken ) throws AuthenticationException {
  UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
  String userName = token.getUsername();
  if( userName != null && !"".equals(userName) ){
  User user = accountManager.login(token.getUsername(),
   String.valueOf(token.getPassword()));
 
  if( user != null )
  return new SimpleAuthenticationInfo(
   user.getLoginName(),user.getPassword(), getName());
  }
  return null;
  }
}

  。

最后此篇关于基于Spring框架的Shiro配置方法的文章就讲到这里了,如果你想了解更多关于基于Spring框架的Shiro配置方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com