• shiro.ini 配置详解


    引用:
    【1】开涛的《跟我学shiro》
    【2】《SpringMVC整合Shiro》
    【3】《shiro简单配置》
    【4】Apache shiro集群实现 (一) shiro入门介绍

    shiro.ini文件默认在_/WEB-INF/_ 或_classpath_下。shiro会自动查找

    1. #‘#’为注释
    2. [main]
    3. #↓修改默认跳转页
    4. #↓shiro 认证失败后默认redirect到/login.jsp.这里修改默认项
    5. authc.loginUrl = /login
    6. #↓登录成功默认跳转页面,不配置则跳转至”/”。如果登陆前点击的一个需要登录的页面,则在登录自动跳转到那个需要登录的页面。不跳转到此。
    7. authc.successUrl = /user
    8. #↓修改角色认证默认地址
    9. roles.unauthorizedUrl = /roles/unauthorized
    10. #↓修改权限认证默认地址
    11. perms.unauthorizedUrl = /perms/unauthorized
    12. #realm
    13. #↓默认会按此声明顺序拦截判断,这里的顺序是先走myRealm2,再走myRealm
    14. myRealm2 = com.myproject.shiro.ShiroRealm2
    15. myRealm = com.myproject.shiro.ShiroRealm
    16. #↓可使用此方法,配置单个或多个,或指定顺序
    17. #↓如果这里注释去掉,则指定只走myRealm2
    18. #securityManager.realm = $myRealm2
    19. #dateSource
    20. #↓ 使用 JdbcRealm 作为当前验证的Realm
    21. jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
    22. #↓ 使用druid数据源
    23. dataSource=com.alibaba.druid.pool.DruidDataSource
    24. #↓ MySQL驱动
    25. dataSource.driverClassName=com.mysql.jdbc.Driver
    26. #↓ MySQL相关参数配置
    27. dataSource.url=jdbc:mysql://localhost:3306/msshop
    28. dataSource.username=root
    29. dataSource.password=root
    30. #↓ 引入相关数据配置
    31. jdbcRealm.dataSource=$dataSource
    32. #↓这里是默认的sql查询语句,可以自己设定,但参数不能修改,只有一个,且相对应。
    33. jdbcRealm.authenticationQuery = select password from users where username = ?
    34. #jdbcRealm.userRolesQuery = select role_name from user_roles where username = ?
    35. #jdbcRealm.permissionsQuery = select permission from roles_permissions where role_name = ?
    36. #↓是否
    37. #jdbcRealm.permissionsLookupEnabled = false
    38. #saltStyle =NO_SALT , CRYPT, COLUMN, EXTERNAL;
    39. #jdbcRealm.saltStyle = COLUMN
    40. securityManager.realms=$jdbcRealm
    41. #cache
    42. #shiroCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
    43. #shiroCacheManager.cacheManagerConfigFile = classpath:ehcache-shiro.xml
    44. #securityManager.cacheManager = $shiroCacheManager
    45. #session
    46. sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
    47. sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
    48. sessionDAO.activeSessionsCacheName = shiro-activeSessionCache
    49. sessionManager.sessionDAO = $sessionDAO
    50. securityManager.sessionManager = $sessionManager
    51. securityManager.sessionManager.globalSessionTimeout = 3600000
    52. #这里的规则,web.xml中的配置的ShiroFilter会使用到。
    53. [urls]
    54. / = anon
    55. /login = anon
    56. /suc = authc
    57. #/rpc/rest/** = perms[rpc:invoke], authc
    58. /admin/** = authc
    59. #用户身份/凭据
    60. [users]
    61. li=123,guest
    62. sun=123,admin
    63. [roles]
    64. admin = *

    有一点说明下:

    1. //这是授权方法
    2. protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
    3. String userName = (String) getAvailablePrincipal(principals);
    4. //TODO 通过用户名获得用户的所有资源,并把资源存入info中
    5. SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
    6. //这里有一点说明下:
    7. //这里set的只是把【已有】的权限、角色放到当前验证的集合中,并不是给用户【设置新的】权限、角色
    8. //【已有】的权限、角色是在配置文件中,或在库表中,这里只是取出放到集合中。
    9. info.setStringPermissions(set集合);
    10. info.setRoles(set集合);
    11. info.setObjectPermissions(set集合);
    12. return info;
    13. }




  • 相关阅读:
    出现错误:代理服务器拒绝连接的解决方法
    ansible之模块 条件判断
    软件相关模块与ansible剧本
    ansible的应用
    Celery -----异步任务,定时任务,周期任务
    SQLAlchemy增删改查 一对多 多对多
    python是如何进行内存管理的?
    Django的模板层(1)
    1.Git安装
    6.case
  • 原文地址:https://www.cnblogs.com/ElEGenT/p/6051622.html
Copyright © 2020-2023  润新知