当前位置: 首页 > news >正文

国外优惠卷网站如何做vue做电商网站

国外优惠卷网站如何做,vue做电商网站,双语网站建设网站,家教网站域名怎么做前言 在系统管理中#xff0c;权限是非常重要的一个环节。目前权限框架中使用比较多的有Shiro、Spring Security。#x1f383; 本篇简单写一下SpringBoot整合Shiro权限框架小栗子#x1f330;。 个人博客地址#xff1a;SpringBoot整合Shiro权限框架 介绍Shiro Apache S…前言 在系统管理中权限是非常重要的一个环节。目前权限框架中使用比较多的有Shiro、Spring Security。 本篇简单写一下SpringBoot整合Shiro权限框架小栗子。 个人博客地址SpringBoot整合Shiro权限框架 介绍Shiro Apache Shiro 是一个强大易用的 Java 安全框架提供了认证、授权、加密和会话管理等功能对于任何一个应用程序Shiro 都可以提供全面的安全管理服务。并且相对于其他安全框架Shiro 要简单的多。更多详细介绍参考w3cschool-shiro 开始 创建项目就不多嗦了直接上干货~~ 相关依赖 !-- web依赖 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusions!-- 剔除spring logging依赖防止与log4j2冲突 --exclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions /dependency !-- log4j依赖 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId /dependency !-- shiro 安全框架-- dependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-spring/artifactIdversion1.6.0/version /dependency系统配置 shiro权限的主要配置部分分为 subject可以认为是一个认证对象与当前应用交互的任何东西都是subjectsecurityManager安全管理器所有安全相关的东西都是跟它交互的它管理着所有的subjectrealm可以认为是一个安全信息数据源主要通过校验subject是否符合安全策略。所以我们在使用shiro时需要先配置自己的realm。 配置Realm 话不多说上代码~ 这里先以登录认证作为粟子 Slf4j public class MyShiroRealm extends AuthorizingRealm {Resourceprivate SysUserService sysUserService;/*** 授权信息配置* param principals* return*/Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {// 主要以登录认证作为例子, 此处暂时不做认证, 之后例子做补充return null;}/*** 登录认证信息* param token token* return 认证信息* throws AuthenticationException e*/Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {// 返回认证信息, 一般为用户名Object principal token.getPrincipal();if (ObjectUtil.isNull(principal)) {return null;}// 获取数据库中用户信息String loginName principal.toString();SysUser user sysUserService.findSysUserByName(loginName);if (null user) {log.debug({} - 登录用户不存在!, loginName);throw new UnknownAccountException(登录用户不存在!);}// 使用盐加密 构造方法ByteSource credentialsSalt ByteSource.Util.bytes(loginName);;SimpleAuthenticationInfo simpleAuthenticationInfo new SimpleAuthenticationInfo(user, user.getLoginPwd(), credentialsSalt, getName());// 验证信息//SimpleAuthenticationInfo simpleAuthenticationInfo new SimpleAuthenticationInfo(user, user.getLoginPwd(), getName());log.debug(验证登录信息: {} {}, loginName, simpleAuthenticationInfo.getPrincipals());return simpleAuthenticationInfo;} }配置安全策略 增加完Realm域配置我们需要让此配置生效所以需要将它添加给Shiro的安全管理策略。 /*** 自定义安全管理策略*/ Bean public SecurityManager securityManager(MyShiroRealm myShiroRealm) {DefaultWebSecurityManager securityManager new DefaultWebSecurityManager();// 设置自定义的realmsecurityManager.setRealm(myShiroRealm);return securityManager; } /*** 地址过滤器** param securityManager* return*/ Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {ShiroFilterFactoryBean shiroFilterFactoryBean new ShiroFilterFactoryBean();// 设置安全管理shiroFilterFactoryBean.setSecurityManager(securityManager);// 设置登录地址shiroFilterFactoryBean.setLoginUrl(/login);// 设置主页地址shiroFilterFactoryBean.setSuccessUrl(/index);// 设置未授权的urlshiroFilterFactoryBean.setUnauthorizedUrl(/unauthorized);MapString, String filterChainDefinitionMap new LinkedHashMap();// 开放登录接口filterChainDefinitionMap.put(/doLogin, anon);// 生成验证码接口filterChainDefinitionMap.put(/captcha/captchaImg, anon);// 开放静态资源文件filterChainDefinitionMap.put(/assets/**, anon);// 其余url全部拦截必须放在最后filterChainDefinitionMap.put(/**, authc);shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);return shiroFilterFactoryBean; }/*** shiro生命周期* return*/ Bean public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {return new LifecycleBeanPostProcessor(); }/*** shiro注解启用配置* return*/ Bean public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator new DefaultAdvisorAutoProxyCreator();defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);return defaultAdvisorAutoProxyCreator; }/**** param securityManager* return*/ Bean public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(Qualifier(securityManager) SecurityManager securityManager) {AuthorizationAttributeSourceAdvisor sourceAdvisor new AuthorizationAttributeSourceAdvisor();sourceAdvisor.setSecurityManager(securityManager);return sourceAdvisor; }登录 设置完自定义域以及自定义策略我们shiro就可以进行下一步了那就是接口认证操作这里简单定义一个接口 /*** 登录操作** param loginName 登录名* param loginPwd 登录密码* return url*/ ResponseBody PostMapping(/doLogin) public ResultString doLogin(String loginName, String loginPwd, String captcha, boolean rememberMe, HttpServletRequest request) {// 验证码校验String sessionCaptcha (String) request.getSession().getAttribute(AppConstants.CAPTCHA_KEY);if (!StringUtils.equalsIgnoreCase(captcha, sessionCaptcha)) {return Result.error(验证码不匹配!);}UsernamePasswordToken usernamePasswordToken new UsernamePasswordToken(loginName, loginPwd, rememberMe);Subject subject SecurityUtils.getSubject();try {// 认证操作subject.login(usernamePasswordToken);// 获取登录的用户SysUser user (SysUser) subject.getPrincipal();// 将用户信息存入cookie中Session session subject.getSession();session.setAttribute(user, user);// 删除session验证码request.getSession().removeAttribute(AppConstants.CAPTCHA_KEY);} catch (UnknownAccountException e) {log.debug(未知用户! {}, e.getMessage());return Result.error(未知用户!);} catch (IncorrectCredentialsException e) {log.debug({} - 用户登录密码校验异常! {}, loginName, e.getMessage());return Result.error(密码校验异常!);} catch (AuthenticationException e) {log.debug({} - 用户登录认证失败! {}, loginName, e.getMessage());return Result.error(登录失败!);} catch (Exception e) {log.debug({} - 用户登录异常! {}, loginName, e.getMessage());return Result.error(登录异常!);}return Result.success(登录成功!); }测试 接口定义完我们需要一个登录页面来完成登录认证操作这里使用我之前写的登录页面来完成。 点击登录后观察接口执行情况: 当执行到subject.login()方法后会进行认证操作这时候就会执行到我们设置的自定义Realm。红框处是我们做完登录用户与数据库中比对过后将用户信息存到了认证信息中并返回给接口。 最后页面成功跳转至新页面我们就完成了登录认证操作啦。 END 简单的完成了一个登录认证的操作之后会慢慢更新shiro的其他功能
http://www.zqtcl.cn/news/762909/

相关文章:

  • angularjs 网站模板工作感悟及心得
  • 福州 网站定制设计哈尔滨网站建设咨询
  • 酒吧网站模板创办网页
  • 外贸网站建设软件有哪些现在网站建设用什么语言
  • lnmp wordpress 主题不见高级seo课程
  • 成都哪家公司做网站最好杭州软件开发
  • 做网站多少宽带够wordpress编辑文章中图片
  • 无锡网站制作排名软件工程公司
  • 做网站国内好的服务器美食网站建设项目规划书
  • 三亚市住房和城乡建设厅网站江西电信网站备案
  • 联谊会总结网站建设对外宣传如何在家做电商
  • 360建站系统徐州建设银行网上银行个人网站
  • 网站域名在哪里备案石家庄站规模
  • 重庆南川网站制作公司电话工会网站群建设
  • 深圳高端建设网站忘了网站链接怎么做
  • 郑州做网站报价wordpress中文4.8
  • 网站维护费用一年多少跨境电商平台网站建设广州
  • 辽宁网站制作公司网店装修流程
  • html5可以做交互网站吗打开网站说建设中是什么问题?
  • 彩票网站开发制作需要什么wordpress 在线预览
  • 外贸平台app衡水seo排名
  • 怎样做网站表白墙东莞商城网站推广建设
  • 郑州郑州网站建设河南做网站公司哪家好爱站长尾词挖掘工具
  • dede网站地图文章变量网站qq 微信分享怎么做
  • 越南做网站网站建设以及运营方面
  • 广西建网站哪家好网站关闭与域名备案
  • 网站开发版本号婚庆网站建设策划案费用预算
  • 厦门建设网站制作中山市哪家公司做网站
  • 网站路径wordpress制作电商网站
  • 江西网站开发哪家专业装饰设计公司网站