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

苗木网站什么做文章管理系统网站模板

苗木网站什么做,文章管理系统网站模板,企业网站首页图片,网站的建设维护一、前言 Spring Security 和 Apache Shiro 都是安全框架,为Java应用程序提供身份认证和授权。 二者区别 Spring Security:重量级安全框架Apache Shiro:轻量级安全框架 关于shiro的权限认证与授权可参考小编的另外一篇文章 : …

一、前言

Spring SecurityApache Shiro 都是安全框架,为Java应用程序提供身份认证和授权。

二者区别
  1. Spring Security:量级安全框架
  2. Apache Shiro:量级安全框架

关于shiro的权限认证与授权可参考小编的另外一篇文章 : SpringBoot集成Shiro 实现动态加载权限

https://blog.csdn.net/qq_38225558/article/details/101616759

二、SpringBoot集成Spring Security入门体验

基本环境 : springboot 2.1.8
1、引入Spring Security依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>
2、新建一个controller测试访问
@RestController
public class IndexController {@GetMapping("/index")public String index() {return "Hello World ~";}
}
3、运行项目访问 http://127.0.0.1:8080/index

温馨小提示:在不进行任何配置的情况下,Spring Security 给出的默认用户名为user 密码则是项目在启动运行时随机生成的一串字符串,会打印在控制台,如下图:在这里插入图片描述当我们访问index首页的时候,系统会默认跳转到login页面进行登录认证

在这里插入图片描述认证成功之后才会跳转到我们的index页面在这里插入图片描述

三、Spring Security用户密码配置

除了上面Spring Security在不进行任何配置下默认给出的用户user 密码随项目启动生成随机字符串,我们还可以通过以下方式配置

1、springboot配置文件中配置
spring:security:user:name: admin  # 用户名password: 123456  # 密码
2、java代码在内存中配置

新建Security 核心配置类继承WebSecurityConfigurerAdapter

@Configuration
@EnableWebSecurity // 启用Spring Security的Web安全支持
public class SecurityConfig extends WebSecurityConfigurerAdapter {/*** 将用户设置在内存中* @param auth* @throws Exception*/@Autowiredpublic void config(AuthenticationManagerBuilder auth) throws Exception {// 在内存中配置用户,配置多个用户调用`and()`方法auth.inMemoryAuthentication().passwordEncoder(passwordEncoder()) // 指定加密方式.withUser("admin").password(passwordEncoder().encode("123456")).roles("ADMIN").and().withUser("test").password(passwordEncoder().encode("123456")).roles("USER");}@Beanpublic PasswordEncoder passwordEncoder() {// BCryptPasswordEncoder:Spring Security 提供的加密工具,可快速实现加密加盐return new BCryptPasswordEncoder();}}
3、从数据库中获取用户账号、密码信息

这种方式也就是我们项目中通常使用的方式,这个留到后面的文章再说

四、Spring Security 登录处理 与 忽略拦截

相关代码都有注释相信很容易理解

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {/*** 登录处理* @param http* @throws Exception*/@Overrideprotected void configure(HttpSecurity http) throws Exception {// 开启登录配置http.authorizeRequests()// 标识访问 `/index` 这个接口,需要具备`ADMIN`角色.antMatchers("/index").hasRole("ADMIN")// 允许匿名的url - 可理解为放行接口 - 多个接口使用,分割.antMatchers("/", "/home").permitAll()// 其余所有请求都需要认证.anyRequest().authenticated().and()// 设置登录认证页面.formLogin().loginPage("/login")// 登录成功后的处理接口 - 方式①.loginProcessingUrl("/home")// 自定义登陆用户名和密码属性名,默认为 username和password.usernameParameter("username").passwordParameter("password")// 登录成功后的处理器  - 方式②
//                .successHandler((req, resp, authentication) -> {
//                    resp.setContentType("application/json;charset=utf-8");
//                    PrintWriter out = resp.getWriter();
//                    out.write("登录成功...");
//                    out.flush();
//                })// 配置登录失败的回调.failureHandler((req, resp, exception) -> {resp.setContentType("application/json;charset=utf-8");PrintWriter out = resp.getWriter();out.write("登录失败...");out.flush();}).permitAll()//和表单登录相关的接口统统都直接通过.and().logout().logoutUrl("/logout")// 配置注销成功的回调.logoutSuccessHandler((req, resp, authentication) -> {resp.setContentType("application/json;charset=utf-8");PrintWriter out = resp.getWriter();out.write("注销成功...");out.flush();}).permitAll().and().httpBasic().and()// 关闭CSRF跨域.csrf().disable();}/*** 忽略拦截* @param web* @throws Exception*/@Overridepublic void configure(WebSecurity web) throws Exception {// 设置拦截忽略url - 会直接过滤该url - 将不会经过Spring Security过滤器链web.ignoring().antMatchers("/getUserInfo");// 设置拦截忽略文件夹,可以对静态资源放行web.ignoring().antMatchers("/css/**", "/js/**");}}

五、总结

  1. 项目引入Spring Security依赖
  2. 自定义Security核心配置类继承WebSecurityConfigurerAdapter
  3. 账号密码配置
  4. 登录处理
  5. 忽略拦截
案例demo源码

gitee.com/zhengqingya…

http://www.yayakq.cn/news/872979/

相关文章:

  • 做网站的是干嘛的wordpress后台添加一级菜单
  • 做网站如何购买服务器吗wordpress通过文章id获取文章
  • 做电子政务 网站兴业大街网站建设
  • 自己人网站建设怎么用dw英文版做网站
  • 旅行网站定制公司建设企业网站需要什么呢
  • 赣州网站制作找哪家好电脑去哪里建设网站
  • 电子商务网站建设教程 pdf市场咨询公司排名
  • 英文网站建站公司网站建设实训报告要求
  • 周浦网络网站建设公司网络推广模板网站
  • 网站高端建设wordpress focus主题
  • 域名怎么拿来做网站小公司做网站多少钱
  • 什么行业需要找网络公司做网站西安建筑科技大学华清学院教务网
  • asp做网站的缺点深圳办公室出租
  • 前端开发和网页设计网页优化包括
  • 中小企业做网站推广wordpress站点标题和副标题
  • 域名买好后怎么建设网站做网站 买空间
  • 网站建设需要通过哪些审批郑州市建设局官方网站
  • 备案成功后怎么建设网站园林景观效果图网站
  • 网站导航栏字体怎么建设ftp网站
  • 做网站 360的好不好佛山网站制作做多少钱
  • 安徽网站seo东莞网站设计价格
  • 钟村免费建站公司网站建设套餐联系方式
  • 毕业设计做系统网站好wordpress注册不要电子邮件
  • 网站内容需要备案吗网站建设公司加优化
  • 福州网站建设服务商东莞通网上营业厅
  • 北京做手机网站的公司哪家好福田企业网站优化最好的方法
  • 淘客客怎么做自己的网站我想做个网站要多少钱
  • 教育发展基金会网站建设网站开发合同审核要点
  • 基于工作过程的商务网站建设:网页制作做网站找公司怎么找
  • 上海公司做网站wordpress虚拟商城主题