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

如何制作一个注册网站网页制作怎么添加视频

如何制作一个注册网站,网页制作怎么添加视频,网站推广计划包含的主要内容,淘宝网的网站设计方案SpringSecurity安全框架的核心功能是认证和授权#xff1a; 认证#xff1a;验证当前访问系统的是不是本系统的用户#xff0c;并且要确认具体是哪个用户。 授权#xff1a;经过认证后判断当前用户是否具有进行某个操作的权限。 一般来说中大型的项目都是使用SpringSecurit…SpringSecurity安全框架的核心功能是认证和授权 认证验证当前访问系统的是不是本系统的用户并且要确认具体是哪个用户。 授权经过认证后判断当前用户是否具有进行某个操作的权限。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多因为相比与SpringSecurityShiro的上手更加的简单。 二、入门案例 2.1、创建Springboot项目勾选SpringSecurity依赖 在SpringBoot项目中使用SpringSecurity我们只需要引入依赖即可实现入门案例 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependency 引入依赖后启动Springboot应用尝试去访问hello接口就会自动跳转到一个SpringSecurity的默认登陆页面默认用户名是user, 密码会输出在控制台必须登陆之后才能对接口进行访问 RestController public class SecurityController {RequestMapping(/hello)public String helloController(){return 欢迎使用SpringSecurity;} } 2.2、启动应用访问接口 当我们访问http://localhost:8080/hello 时会自动跳转到默认的登陆页面 2.3、入门案例中 SpringSecurity 的流程 SpringSecurity 的原理其实就是一个过滤器链内部包含了提供各种功能的过滤器 这里我们可以看看入门案例中的过滤器图中只展示了核心过滤器其它的非核心过滤器没有展示。 UsernamePasswordAuthenticationFilter:负责处理我们在登陆页面填写了用户名、密码后的登陆请求。入门案例的认证工作主要有它负责。 ExceptionTranslationFilter 处理过滤器链中抛出的任何AccessDeniedException和AuthenticationException 。 FilterSecurityInterceptor 负责权限校验的过滤器 我们可以通过Debug查看当前系统中SpringSecurity过滤器链中有哪些过滤器及它们的顺序 入门案例中的SpringSecurity过滤器链里有15个过滤器 {DefaultLoginPageGeneratingFilter6504} 这个Filter功能是用来显示默认的登录页如果说你不想要默认登录页到时候不要加他就可以了, {DefaultLogoutPageGerneratingFilter6505}这个Filter功能是用来显示默认的注销页面 2.4、入门认证流程详解 概念速查: Authentication接口: 它的实现类表示当前访问系统的用户封装了用户相关信息。它用来表示的是当前访问系统的用户可以在里面封装一些用户的相关信息比如说用户名、密码然后包括用户的一些权限都可以。但是在这个情况下你看他只提交了用户名、密码那他封装的对象里面也只有用户名和密码信息 AuthenticationManager接口定义了认证Authentication的方法 UserDetailsService接口加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法。会把这些用户信息、权限信息又封装成一个UserDetails对象这也是一个接口它的核心提供了用户信息我们可以把查到的用户的一些信息封装到这个接口的一个对象里面去。 UserDetails接口提供核心用户信息。通过UserDetailsService根据用户名获取处理的用户信息要封装成UserDetails对象返回。然后将这些信息封装到Authentication对象中。   2.5、入门案例的缺点分析: 1、在我们前后端分离的项目中我们不需要springsecurity提供的默认登录页给它删除我们需要自定义登录接口 2、入门案例里面用户名和密码用户名默认为user密码是它随机生成的这肯定是不行的。我们应该是让他去数据库里面去进行用户名、密码的校验 3、入门案例它是基于session去实现这种登录。前后端不分离的时候可以用session前后端分离就不能使用session了当用户的用户名、密码校验成功后我们应该①以用户id生成jwt作为token响应给前端② 同时以用户id作为key用户信息作为value存入Redis中实际项目中用不用 用户id 作为jwt、作为key看具体的项目需求 4、当我们校验用户有没有权限去访问当前他所请求的这个资源时我们应该去获取请求头中的token进行解析去判断有没有权限访问当前资源  三、自定义登录的认证: 实际前后端分离的项目中去进行认证核心其实依赖的就是token你可以理解成它是一个加密之后的一个字符串我通过前端是否携带这个token去判断你是不是我系统的用户、你究竟是哪一个用户这是它的一个核心思路 3.1、自定义的登录认证需要实现两大功能登录、校验 登录 ​         ①自定义登录接口 把用户输入的用户名和密码封装成Authentication对象 ​                 调用ProviderManager的authenticate()方法进行认证 如果认证没通过给用户对应的提示信息 如果认证通过则生成jwt作为token返回给前端并且把用户信息存入redis中 ​         ②自定义UserDetailsService接口的实现类 ​                 在这个实现类中去查询数据库 校验 ​         ①定义Jwt认证过滤器 ​                 获取token ​                 解析token获取其中的userid ​                 从redis中获取用户信息 ​                 存入SecurityContextHolder 3.2、自定义登录接口的具体思路、流程 ①、默认情况下定义的接口都会被我们SpringSecurity保护要求必须认证后才能够访问而这个登录接口必须设置为让SpringSecurity放行让用户访问登录接口的时候不需要登录也能够访问否则会相互矛盾 ②、我们自定义一个登录接口其实就是定义一个Controller去接受用户输入的用户名和密码然后在Controller中去调用Service在Service当中进行具体的业务操作这个登录接口的请求方式为Post所以要使用PostMapping ③、具体的业务操作包括 把用户名和密码封装成Authentication对象 调用AuthenticationManager的authenticate()方法进行认证 密码加密存储PassWordEncoder 实际项目中我们不会把密码明文存储在数据库中。         默认使用的PasswordEncoder要求数据库中的密码格式为: {id}password。它会根据id去判断密码的加密方式,如果没加密就是{noop}password。但是我们一般不会采用这种方式。所以需要替换PasswordEncoder。          我们一般使用SpringSecurity为我们提供的BCryptPasswordEncoder我们只需要使用把BCryptPasswordEncoder对象注入Spring容器中SpringSecurity就会使用BCryptPasswordEncoder来进行密码校验。 BCryptPasswordEncoder简介 1 、BCryptPasswordEncoder是采用SHA-256 随机盐密钥对明文密码进行加密。SHA系列是Hash算法不是加密算法使用加密算法意味着可以解密这个与编码/解码一样但是采用Hash处理其过程是不可逆的。BCrypt 是一种强哈希算法它能很好地防止被暴力破解。 2、加密(encode)注册用户时采用SHA-256随机盐密钥把用户输入的密码进行hash处理得到密码的hash值然后将其存入数据库中。因为每次的随机盐不同导致对同一明文密码加密后得到的加密结果都不一样。密文中本身包含了很多信息包括 salt 和 使用 salt 加密后的 hash。 3、密码匹配(matches)用户登录时密码匹配阶段并没有进行密码解密因为密码经过Hash处理是不可逆的而是使用相同的算法把用户输入的密码进行hash处理得到密码的hash值然后将其与从数据库中查询到的密码hash值进行比较。如果两者相同说明用户输入的密码正确。 4、这正是为什么处理密码时要用hash算法而不用加密算法。因为这样处理即使数据库泄漏黑客也很难破解密码 BCryptPasswordEncoder举例 我们可以定义一个SpringSecurity的配置类SpringSecurity要求这个配置类要继承WebSecurityConfigurerAdapter Configuration public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {Beanpublic PasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();} } SpringBootTest class Boot3SpringsecurityApplicationTests {Autowiredprivate BCryptPasswordEncoder passwordEncoder;Testpublic void testBCryptPasswordEncoder(){// BCryptPasswordEncoder passwordEncoder new BCryptPasswordEncoder();//传入密码的明文它就会帮你进行加密然后返回加密之后的字符串String encode1 passwordEncoder.encode(123456);String encode2 passwordEncoder.encode(123456);System.out.println(encode1 encode1);System.out.println(encode2 encode2);//第一个参数传入的是登录时候用户输入的密码明文然后和你数据库当中查到的加密后的密文比较boolean flag1 passwordEncoder.matches(123456,encode1);boolean flag2 passwordEncoder.matches(123456,encode2);System.out.println(flag1为flag1);System.out.println(flag2为flag2);}} LoginUser implements UserDetails 到时候框架里面会调用loginUser的getPassword()方法来获取当前用户的密码之类的   Data AllArgsConstructor NoArgsConstructor public class LoginUser implements UserDetails {private User user;Overridepublic Collection? extends GrantedAuthority getAuthorities() {return null;}Overridepublic String getPassword() {return user.getPassword();}Overridepublic String getUsername() {return user.getUserName();}Overridepublic boolean isAccountNonExpired() {return false;}Overridepublic boolean isAccountNonLocked() {return false;}Overridepublic boolean isCredentialsNonExpired() {return false;}Overridepublic boolean isEnabled() {return false;} }自定义登录接口
http://www.zqtcl.cn/news/47762/

相关文章:

  • 重庆seo网站哪家好新媒体运营是做什么
  • 泰州做企业网站修改wordpress ftp端口
  • 武山县建设局网站中国网教育
  • 百度做网站推广多少钱sentos上部署.net网站
  • 怎么做网站给国外看见网视易网站建设
  • 中科诚建建设工程有限公司网站织梦建站系统教程
  • 经典的jq查询网站网站搭建平台有哪些
  • 什么为网站建设提供基础素材安全工程师证报考条件是什么
  • html静态页面怎么放在网站上梦幻西游网页版微信区和app互通吗
  • 槐荫区网站建设给家乡做网站
  • 免费微网站制作教程视频wap网站发布
  • 网站个人备案和企业备案网站建设编码
  • 邢台哪儿能做网站网站建设中的安全问题
  • 有哪些网站有做网页用的小图片网站建设及推广销售话术
  • 哈尔滨做平台网站平台公司cn域名注册网站
  • 高端品牌网站设计欣赏网站开发建设步骤
  • 手游传奇发布网站建设部网站怎么查岗位人员
  • 浙江中钦建设有限公司网站营销型网站建设一般要多少钱
  • 各大网站收录入口广州市财贸建设开发监理网站
  • 安康市网站建设wordpress无法连接到ftp服务器
  • wordpress本地网站网站建设需准备什么软件
  • 学做甜点的网站wordpress图片存到七牛云
  • 做桂林网站的图片大全外贸订单从哪里接
  • 8个页面的网站怎么做电子版简历免费的
  • 北京集团网站建设小规模注册公司流程和费用
  • 建设网站需要注册证书吗y3微信管理系统
  • 仿站是什么意思阿里云网站建设教程视频
  • 江苏国龙翔建设公司网站网站建设及政务工作自查
  • 网站后台word编辑器vip解析网站如何做
  • 托管网站服务器WordPress如何加代码