SpringBoot Shiro配置自定义密码加密器代码实例_java

来源:脚本之家  责任编辑:小易  

1.注解只是代码的简略写法,所以生效不生效要看代码有没有被执行。2.有没有被执行看的是配置,扫描范

shiro主要有三大功能模块:

网页链接

1. Subject:主体,一般指用户。

springboot+ssm整合之后想加一个shiro安全框架,应该怎么配置 搜索资料&#

2. SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件。(类似于SpringMVC中的DispatcherServlet)

anon:无需认证即可访问authc:需要认证才可访问user:点击“记住我”功能可访问

3. Realms:用于进行权限信息的验证,一般需要自己实现。

我有一个ssm+springboot+gradle+bootstrap的项目,redis和shiro

细分功能

1. Authentication:身份认证/登录(账号密码验证)。 2. Authorization:授权,即角色或者权限验证。 3. Session Manager:会话管理,用户登录后的session相关管理。 4. Cryptography:加密,密码加密等。 5. Web Support:Web支持,集成Web环境。 6. Caching:缓存,用户信息、角色、权限等缓存到如redis等缓存中。 7. Concurrency:多线程并发验证,在一个线程中开启另一个线程,可以把权限自动传播过去。 8. Testing:测试支持; 9. Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问。 10. Remember Me:记住我,登录后,下次再来的话不用登录了。

财产分配已经完毕,妻子翁帆得到一套别墅的“使用权”……不得不说姜还是老的辣!娱乐圈里面的情感,忘年恋从来就不是新鲜事,老少配似乎成了娱乐圈成功人士的标配。然而在科技圈,也有一对爷孙恋,正是相差54岁的杨翁组合。近日,关于杨振宁和妻子翁帆的“黄昏恋”很热门,媒体爆出消息称:杨振宁的财产分配已经完毕,妻子翁帆得到一套别墅的“使用权”,自己的前妻和儿女将获得现金资产。有爆出清华大学给杨振宁盖过一幢别墅,是杨振宁回国之后专门居住的房子。这套清华别墅在杨振宁死后,可以归翁帆。可是并非是为翁帆真正所有,她只是拥有了这套房子的使用权,而她不能卖掉的,产权依然是归清华大学所有的。清华大学也专门对这所别墅的归属

自定义认证加密方式

国内最大网约车出行平台滴滴境况如何?号称日订单2000万,进入合法化轨道后,没有疯狂的补贴,滴滴订单到底剩多少呢?2017年第一季度用户渗透率活跃度双降去年8月,滴滴并购优步中国,用户量阶段性提升。据猎豹大数据平台libra的数据显示,2016年9月滴滴出行用户渗透率达历史最高值2%以上。但随着滴滴Uber的合并,对乘客和司机补贴的减少,用户渗透率一路下跌。直至今年3月,用户渗透率已降至1.4%,下降幅度在30%以上。除了用户渗透率,滴滴现行的用户活跃度也在下降。易观智库数据显示,去年10月是滴滴用户活跃度最高峰,但之后也是跌跌不休,直至今年3月,降至并购后优步中国后的最低值。业内人士分析,滴

/** * 自定义认证加密方式 */ public static class CustomCredentialsMatcher extends SimpleCredentialsMatcher { @Override public boolean doCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) { UsernamePasswordToken token = (UsernamePasswordToken) authcToken; //加密类型,密码,盐值,迭代次数 Object tokenCredentials = new SimpleHash("md5", password, username, 2).toHex(); //数据库存储密码 Object accountCredentials = getCredentials(info); //将密码加密与系统加密后的密码校验,内容一致就返回true,不一致就返回false return equals(tokenCredentials, accountCredentials); } }

炉峰禅寺“清净为心皆补怛,慈悲济物即观音。”炉峰禅寺位于绍兴城东南隅会稽山之香炉峰,门票15元。唐代大诗人白居易曾登攀炉峰,写下“石凹仙药臼,峰峭佛香炉”的名句。可以说,炉峰禅寺是绍兴市区里最有名的一座寺院了。峰顶数十米见方,形似香炉,每逢云雨天气,山顶雨雾迷朦,烟霭缭绕,有“炉峰烟雨”之称,为越中12胜景之一。每年农历三月初九,炉峰禅寺都要隆重举行拜山法会,上千信众自发参加,风雨无阻,雷打不动,成为制度,形成传统。另外,二月十九、六月十九、九月十九,香炉峰上也是人山人海大家对炉峰禅寺应该是很熟悉了,小编就不再过多的介绍了~云门禅寺云门禅寺坐落于绍兴城南十五公里的平水镇寺里头村秦望山麓脚下的一

第一种方式:配置Bean

经常从电视剧里看到空姐拖着箱包行走在候机楼中,看起来既光鲜、又神秘,最好奇的是箱子里面究竟放了些什么呢?从我朋友那了解到,在当天来回的短途飞行中,一个小箱子和一个小拎包是标准装备。先说说小拎包,这可是麻雀虽小五脏俱全。首当其冲的就是乘务员的化妆包,一个精致职业的妆容必定离不开及时的补妆。飞机过站时、用餐完毕后乘务员都会稍加补妆,以最饱满的精神面貌再一次展现在旅客面前。除了私人物品外,还有很多乘务员为旅客着想的小物件,比如说邦迪、指甲刀、风油精、蚊不叮、针线包,小到一根牙签等等。乘务员像小叮当一样,能\"变\"出很多旅客所需要的东西。当然乘务员上机所需的各种证件也是小拎包中的必需品,譬如登机证、

/** * Shiro自带密码管理器 * * @return HashedCredentialsMatcher */ @Bean public HashedCredentialsMatcher hashedCredentialsMatcher() { //Shiro自带加密 HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher(); //散列算法使用md5 credentialsMatcher.setHashAlgorithmName("md5"); //散列次数,2表示md5加密两次 credentialsMatcher.setHashIterations(2); credentialsMatcher.setStoredCredentialsHexEncoded(true); return credentialsMatcher; } /** * 将自己的身份验证器验证方式加入容器 * * @return CustomRealm */ @Bean public CustomRealm shiroRealm() { CustomRealm shiroRealm = new CustomRealm(); //shiroRealm.setCacheManager(cacheManager()); //加入密码管理 //shiroRealm.setCredentialsMatcher(hashedCredentialsMatcher());//Shiro自带密码管理器 shiroRealm.setCredentialsMatcher(new CustomCredentialsMatcher());//自定义密码管理器 return shiroRealm; }

第二种方式:实现AuthorizingRealm类setCredentialsMatcher方法

public class CustomRealm extends AuthorizingRealm { ... ... ... /** * 设置自定义认证加密方式 * * @param credentialsMatcher 默认加密方式 */ @Override public void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) { //自定义认证加密方式 CustomCredentialsMatcher customCredentialsMatcher = new CustomCredentialsMatcher(); // 设置自定义认证加密方式 super.setCredentialsMatcher(customCredentialsMatcher); } }

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

springboot整合shiro时配置类放在哪个位置

都是依赖注解。

推荐一套完整的Shiro Demo,免费的。Shiro介绍文档:http://www.sojson.com/shiro

Demo已经部署到线上,地址是http://shiro.itboy.net,

管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。

PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。

springboot配置shiro框架yml配置文件怎么写

我们通过SpringBoot的自动配置,读取yml配置生成Spring

springboot+shiro 如何解决logout退出页面数据还存在

Spring Boot集成Shiro后,用下面这种方法退出,回调退出地址的之后并没有到回调的地址,而是重新进入了首页,有时候还会在logout之前就进入首页,但是这个时候session已经清了,然后就报错了,搞不懂为什么会出现这种情况,后面我用了另一种方法,至少到现在没有出现这个问题。希望有大神知道原因的回复一下,万分感激。@RequestMapping("/logout")

public String logout() {

    return "redirect:" + casConfigProperties.getLogoutUrl();

}

@Bean(name = "shiroFilter")

public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager, CasFilter casFilter) {

    ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();

    shiroFilterFactoryBean.setSecurityManager(securityManager);

    shiroFilterFactoryBean.setLoginUrl("/login");

    shiroFilterFactoryBean.setSuccessUrl("/main");

    shiroFilterFactoryBean.setUnauthorizedUrl("/403");

    // 添加casFilter到shiroFilter中

    Map<String, Filter> filters = new HashMap<>();

    filters.put("casFilter", casFilter);

    filters.put("authc", new MyFormAuthenticationFilter());

    shiroFilterFactoryBean.setFilters(filters);

    loadShiroFilterChain(shiroFilterFactoryBean);

    return shiroFilterFactoryBean;

}

private void loadShiroFilterChain(ShiroFilterFactoryBean shiroFilterFactoryBean) {

    Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();

    // authc:该过滤器下的页面必须登录后才能访问,它是Shiro内置的一个*org.apache.shiro.web.filter.authc.FormAuthenticationFilter

    // anon: 可以理解为不拦截

    // user: 登录了就不拦截

    // roles["admin"] 用户拥有admin角色

    // perms["permission1"] 用户拥有permission1权限

    // filter顺序按照定义顺序匹配,匹配到就验证,验证完毕结束。

    // url匹配通配符支持:? * **,分别表示匹配1个,匹配0-n个(不含子路径),匹配下级所有路径

    // 1.shiro集成cas后,首先添加该规则

    filterChainDefinitionMap.put("/", "casFilter");

    filterChainDefinitionMap.put("/global/**", "anon");

    filterChainDefinitionMap.put("/logout", "anon");

    filterChainDefinitionMap.put("/passwordResetView", "anon");

    filterChainDefinitionMap.put("/passwordReset", "anon");

    filterChainDefinitionMap.put("/sendPhoneAuthenticationCode", "anon");

    filterChainDefinitionMap.put("/login", "casFilter,authc");

    filterChainDefinitionMap.put("/**", "user");

    shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);

}

这是我的解决办法,把退出改成用Shrio自己的退出过滤器,再里面设置退出后的回调地址,把控制器里的logout去掉。

至少到现在没有出现上面这种问题。

@Bean(name = "shiroFilter")

public ShiroFilterFactoryBean getShiroFilterFactoryBean(DefaultWebSecurityManager securityManager, CasFilter casFilter) {

    ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();

    shiroFilterFactoryBean.setSecurityManager(securityManager);

    shiroFilterFactoryBean/https://www.jsykyy.com/#setLoginUrl("/login");

    shiroFilterFactoryBean.setSuccessUrl("/main");

    shiroFilterFactoryBean.setUnauthorizedUrl("/403");

    // 添加casFilter到shiroFilter中

    Map<String, Filter> filters = new HashMap<>();

    filters.put("casFilter", casFilter);

    filters.put("authc", new MyFormAuthenticationFilter());

    LogoutFilter logoutFilter = new LogoutFilter();

    logoutFilter.setRedirectUrl(casConfigProperties.getLogoutUrl());

    filters.put("logout", logoutFilter);

    shiroFilterFactoryBean.setFilters(filters);

    loadShiroFilterChain(shiroFilterFactoryBean);

    return shiroFilterFactoryBean;

}

private void loadShiroFilterChain(ShiroFilterFactoryBean shiroFilterFactoryBean) {

    Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();

    // authc:该过滤器下的页面必须登录后才能访问,它是Shiro内置的一个*org.apache.shiro.web.filter.authc.FormAuthenticationFilter

    // anon: 可以理解为不拦截

    // user: 登录了就不拦截

    // roles["admin"] 用户拥有admin角色

    // perms["permission1"] 用户拥有permission1权限

    // filter顺序按照定义顺序匹配,匹配到就验证,验证完毕结束。

    // url匹配通配符支持:? * **,分别表示匹配1个,匹配0-n个(不含子路径),匹配下级所有路径

    // 1.shiro集成cas后,首先添加该规则

    filterChainDefinitionMap.put("/", "casFilter");

    filterChainDefinitionMap.put("/global/**", "anon");

    filterChainDefinitionMap.put("/logout", "logout");

    filterChainDefinitionMap.put("/passwordResetView", "anon");

    filterChainDefinitionMap.put("/passwordReset", "anon");

    filterChainDefinitionMap.put("/sendPhoneAuthenticationCode", "anon");

    filterChainDefinitionMap.put("/login", "casFilter,authc");

    filterChainDefinitionMap.put("/**", "user");

    shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);

}

springboot shiroconfig怎么调用接口

正常情况是不会出现这样的,shiro对于静态资源的处理,不用特殊配置,只需要在shiroFilter过滤器filterChainDefinitions项中增加一个静态资源处理规则就可以,例如允许/css/开头的资源匿名访问,只需要这样一句配置就足矣, /css/** = anon 配

  • 本文相关:
  • 基于springboot实现整合shiro实现登录认证以及授权过程解析
  • springboot + shiro前后端分离权限
  • spring boot整合shiro+jwt实现前后端分离
  • spring boot集成shiro实现动态加载权限的完整步骤
  • springboot中shiro缓存使用redis、ehcache的方法
  • springboot2.0整合shiro框架实现用户权限管理的示例
  • springboot整合shiro两种方式(总结)
  • 在java web项目中添加定时任务的方法
  • 重新启动idea时maven项目ssm框架文件变色所有@注解失效
  • java实现的傅里叶变化算法示例
  • spring boot实现文件上传示例代码
  • spring如何在一个事务中开启另一个事务
  • character.unicodeblock中cjk的说明详解
  • java基础教程之对象的方法与数据成员
  • 关于java中的继承和组合的一个错误使用的例子
  • java加密算法rsa代码实例
  • java实现数字猜拳小游戏
  • springboot整合shiro时配置类放在哪个位置
  • springboot配置shiro框架yml配置文件怎么写
  • springboot+shiro 如何解决logout退出页面数据还存在
  • springboot shiroconfig怎么调用接口
  • springboot集成shiro可以实现前后端分离吗
  • Springboot集成shiro,开启shiro缓存,@Lazy注解贴在自定义realm中缓存会生...
  • SpringBoot+Shiro整合后登录功能报错
  • springboot+ssm整合之后想加一个shiro安全框架,应该怎么配置
  • shiro中的anon,authc啥意思
  • 想要一个SSM+springboot+Maven+shiro+redis+bootstrap的Jav...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言其它相关首页java基于springboot实现整合shiro实现登录认证以及授权过程解析springboot + shiro前后端分离权限spring boot整合shiro+jwt实现前后端分离spring boot集成shiro实现动态加载权限的完整步骤springboot中shiro缓存使用redis、ehcache的方法springboot2.0整合shiro框架实现用户权限管理的示例springboot整合shiro两种方式(总结)在java web项目中添加定时任务的方法重新启动idea时maven项目ssm框架文件变色所有@注解失效java实现的傅里叶变化算法示例spring boot实现文件上传示例代码spring如何在一个事务中开启另一个事务character.unicodeblock中cjk的说明详解java基础教程之对象的方法与数据成员关于java中的继承和组合的一个错误使用的例子java加密算法rsa代码实例java实现数字猜拳小游戏java使double保留两位小数的多方java8 十大新特性详解java.net.socketexception: connjava写入文件的几种方法分享java环境变量的设置方法(图文教程java 十六进制与字符串的转换java list用法示例详解java中file类的使用方法javaweb实现文件上传下载功能实例java 字符串截取的三种方法(推荐springboot2.0自适应效果错误响应过程解析spring mvc防止数据重复提交的方法使用springboot+okhttp+fastjson实现githjava中的simpledateformat使用详解spring security实现下次自动登录功能过程elasticsearch kibana简单查询讲解java char数据类型原理解析spring boot中多线程开发的注意事项总结java编程实现直接插入排序代码示例mybatis 延迟加载的深入理解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved