当前位置: 首页 > 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.pierceye.com/news/47762/

相关文章:

  • 昌吉网站建设电话设计网站的结构时
  • 微信做自己网站备案网站地址
  • 网站程序定制开发流程网站恶意点击软件
  • 网站建设 国家标准互联网平台构建怎么写
  • 网站建设软件开发的新闻孵化器网站建设
  • 网站开发工作需要什么专业用excel可以做网站
  • 有哪些做策划的用的网站重庆网站备案快
  • 调整网站模板大小湛江优化网站排名
  • 视频网站哪个做的好佛山顺德容桂做网站的公司
  • 浙江高端网站建设朔州网站建设价格低
  • 佛山微信网站设计深圳线上注册公司
  • 上海网站制作平台高端展馆展厅设计方案
  • 简单建设网站国家批准做新闻的网站
  • 网站建设 合肥网站域名服务器查询
  • 触屏版手机网站开发个人网站设计目的
  • 网站添加邮件发送怎么做个人网站建设方案书用备案的
  • 网站我们的客户wordpress 3.4.2
  • 长春市网站建设永康营销型网站建设
  • 单位建设网站的目的如何做自己公司的网站
  • 网站开发搭建合同建立电子商务网站目的
  • 2017常用的网站新网站优化怎么做
  • 做网站个人外贸网站建设哪里好
  • 阿里巴巴外贸网站论坛制作网站的列子
  • 天津建设银行网站如何修改英文WordPress主题首页
  • 网站后台管理是什么21dove谁做的的网站
  • 网站建设最新签约全球十大网站访问量排名
  • 中国建设执业资格注册管理中心网站关键词权重如何打造
  • 厦门 网站建设 网站开发中信建设有限责任公司财务总监
  • 网站建设项目章程窝窝在线观看
  • 可信网站 认证规则宝塔怎么创建网站