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

苏醒主题做的网站织梦网站图片不显示

苏醒主题做的网站,织梦网站图片不显示,北京 公司网站制作,卢氏县住房和城乡规划建设局网站目录 前言 特点 快速开始 导入依赖 运行项目 访问服务 权限控制 实现UserDetails接口 添加SecurityConfig配置类 测试接口DemoController 设置权限控制authorizeHttpRequests 结果分析 总结 前言 Spring Security是一个强大且高度可定制的身份验证和访问控制框架…目录 前言 特点 快速开始 导入依赖 运行项目 访问服务 权限控制 实现UserDetails接口 添加SecurityConfig配置类 测试接口DemoController 设置权限控制authorizeHttpRequests 结果分析 总结 前言 Spring Security是一个强大且高度可定制的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实标准。 Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样Spring Security的真正力量在于它可以多么容易地扩展以满足自定义需求。 特点 对身份验证和授权的全面且可扩展的支持 防止会话固定、点击劫持、跨站点请求伪造等攻击 Servlet API集成 与Spring Web MVC的可选集成 快速开始 导入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId /dependency 运行项目 查看控制台的输出会发现出现了警告。 警告翻译 使用生成的安全密码e3e4d1a9-2520-49a8-bb0b-359c2ed19314 此生成的密码仅供开发使用。在生产环境中运行应用程序之前必须更新您的安全配置。  因为我们只是引入了SpringSecurity的依赖并没有对其进行配置。所以此时使用的都是默认的配置这些配置都是可以自定义的。 访问服务 访问后会跳转到登录页面默认用户名user密码在控制台中查看。默认的登录请求为/login只有登录成功后才能继续访问。 输入用户名和密码会跳转页面。但是我们没有设置登录成功后的页面跳转所以结果是404 Not Found。其实我们没有必要去设置这个跳转页面因为开发都是基于前后端分离的模式。前端发起登录请求我们后端响应结果就行了。也就意味着这个登录页面也是多余的后面我们会将这个登录禁用。 到这里就是对SpringSecurity的快速开始接下来我们来看对权限的控制。 权限控制 实现UserDetails接口 SpringSecurity需要通过实现了UserDetails接口的类来判断用户登录和权限控制我们要做的就是查询用户信息然后封装成UserDetails对象并交给Security进行处理。 import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails;import java.util.Collection;public class SysUser implements UserDetails {private final String username;private final String password;private final Collection? extends GrantedAuthority authorities;public SysUser(String username, String password, Collection? extends GrantedAuthority authorities) {this.username username;this.password password;this.authorities authorities;}Overridepublic Collection? extends GrantedAuthority getAuthorities() {return authorities;}Overridepublic String getPassword() {return password;}Overridepublic String getUsername() {return username;}Overridepublic boolean isAccountNonExpired() {// 是否账号未过期return true;}Overridepublic boolean isAccountNonLocked() {// 是否账号未锁定return true;}Overridepublic boolean isCredentialsNonExpired() {// 是否凭据未过期return true;}Overridepublic boolean isEnabled() {// 是否账号可用return true;} } 添加SecurityConfig配置类 密码编码器必须指定密码编码器因为密码不允许明文存储。账号的密码为123abc但存储的密码可不是123abc而是经过编码后生成的一串字符串。 添加用户到内存这里就直接添加用户到内存正常是要保存在数据库里。道理其实是一样的都是要提供给Security封装实现了UserDetails接口的类。 配置过滤器链这个是很重要的配置Security的扩展性很强就是因为可以在这里配置各种自定义的设置。例如我们可以配置自定义身份验证过滤器从而替换默认的配置。 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.provisioning.InMemoryUserDetailsManager; import org.springframework.security.web.SecurityFilterChain;Configuration EnableWebSecurity public class SecurityConfig {// 添加用户到内存Beanpublic InMemoryUserDetailsManager inMemoryUserDetailsManager() {String password 123abc;BCryptPasswordEncoder bCryptPasswordEncoder new BCryptPasswordEncoder();String encode bCryptPasswordEncoder.encode(password);SysUser sysUser new SysUser(艾伦, encode,AuthorityUtils.commaSeparatedStringToAuthorityList(权限1,权限2));return new InMemoryUserDetailsManager(sysUser);}// 密码编码器Beanpublic BCryptPasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();}// 配置过滤器链Beanpublic SecurityFilterChain defaultSecurityFilterChain(HttpSecurity httpSecurity) throws Exception {// 关闭跨域漏洞防御httpSecurity.csrf(AbstractHttpConfigurer::disable);return httpSecurity.build();} } 测试接口DemoController 我们编写两个接口用来测试权限控制。 import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;RestController public class DemoController {GetMapping(/test1)public String demo1() {System.out.println(test1访问成功);return test1访问成功;}GetMapping(/test2)public String demo2() {System.out.println(test2访问成功);return test2访问成功;} } 设置权限控制authorizeHttpRequests 我们的用户只有权限1和权限2并没有权限3。也就意味着demo1接口我们能正常访问而demo2接口会因为没有权限访问失败。 注意这里要指定登录请求为/login否则会被拒绝访问。 // 配置过滤器链 Bean public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity httpSecurity) throws Exception {httpSecurity.authorizeHttpRequests(authorizeHttpRequests - authorizeHttpRequests.requestMatchers(HttpMethod.GET, /test1).hasAnyAuthority(权限1, 权限2).requestMatchers(HttpMethod.GET, /test2).hasAuthority(权限3));httpSecurity.formLogin(formLogin - formLogin.loginProcessingUrl(/login) // 登录请求);// 关闭跨域漏洞防御httpSecurity.csrf(AbstractHttpConfigurer::disable);return httpSecurity.build(); } 结果分析 结果就是/test1访问成功而/test2因为没有权限访问失败。 /test1 /test2  总结 这就是对SpringSecurity的初识先做一个了解。要想在项目中整合SpringSecurity的话还需要进一步学习了解更深层的原理。  《整合SpringSecurity》 https://blog.csdn.net/qq_74312711/article/details/134992609?spm1001.2014.3001.5502
http://www.dnsts.com.cn/news/103489.html

相关文章:

  • 上海建设行政主管部门政务网站做足球预测的网站
  • 响应式网站制作教程电子商务网站开发实务石道元
  • 免网站域名注册asp.net 网站授权
  • 关于写策划的一个网站哪里的赣州网站建设
  • 手机电商网站 模板网站建设跟加入会员哪个效果好
  • 株洲网站建设 李wordpress登录才能看内容
  • 网站如何建设与安全管理制度实业+东莞网站建设
  • 在网上找做设计是什么网站电子计算机哪个专业最吃香
  • 网站后台文章编辑器长春工作招聘网
  • php个人网站模板下载代码共享网站
  • html5 网站模版婚纱影楼网站建设
  • 宝应县天宇建设网站dj那个网站做的好
  • 百度网站做不做关于网站建设的英文歌
  • 网站开发需要的技术自己做衣服的网站
  • 一个网站数据库手机网站建设 jz.woonl
  • 网站建设销售该学的深圳网站设计灵点网络公司不错
  • 品牌型网站建设哪里好南通seo快速排名
  • 建设网站怎样通过流量赚钱网络工程毕设做网站
  • 公司 网站建设成都网站搜索优化
  • 上海标志设计公司上海品牌设计网站建设优化解析
  • 网站内容页显示不出来途牛网网站是哪家公司做的
  • 江苏广兴建设集团网站wordpress每页不显示文章
  • 建设网站是否等于网络营销wordpress 文章密码
  • 网站的pdf目录怎么做的网络优化网站
  • 网站后台上传图片 不可用成都住建局官网登录入口查询
  • 对接空间站做外贸网站建设
  • 网站编辑器失效包装设计公司排行
  • 沈阳城市建设学院官网网站免费行情软件在线网站
  • 做精美得ppt网站知乎网站建设方面的书籍
  • 网站建设硬件条件个人做网站的注意事项