SpringBoot如何集成Spring Security
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下SpringBoot如何集成Spring Security,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
千家信息网最后更新 2026年11月03日SpringBoot如何集成Spring Security
小编给大家分享一下SpringBoot如何集成Spring Security,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
一、前言
Spring Security 和 Apache Shiro 都是安全框架,为Java应用程序提供身份认证和授权。
Spring Security:
重量级安全框架Apache Shiro:
轻量级安全框架
关于shiro的权限认证与授权可参考小编的另外一篇文章 : SpringBoot集成Shiro 实现动态加载权限
https://blog.csdn.net/qq_38225558/article/details/101616759
二、SpringBoot集成Spring Security入门体验
基本环境 : springboot 2.1.81、引入Spring Security依赖
org.springframework.boot spring-boot-starter-security
2、新建一个controller测试访问
@RestControllerpublic 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 */ @Autowired public 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"); } @Bean public PasswordEncoder passwordEncoder() { // BCryptPasswordEncoder:Spring Security 提供的加密工具,可快速实现加密加盐 return new BCryptPasswordEncoder(); }}3、从数据库中获取用户账号、密码信息
这种方式也就是我们项目中通常使用的方式,这个留到后面的文章再说
四、Spring Security 登录处理 与 忽略拦截
相关代码都有注释相信很容易理解
@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter { /** * 登录处理 * @param http * @throws Exception */ @Override protected 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 */ @Override public void configure(WebSecurity web) throws Exception { // 设置拦截忽略url - 会直接过滤该url - 将不会经过Spring Security过滤器链 web.ignoring().antMatchers("/getUserInfo"); // 设置拦截忽略文件夹,可以对静态资源放行 web.ignoring().antMatchers("/css/**", "/js/**"); }}以上是"SpringBoot如何集成Spring Security"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
配置
登录
用户
成功
密码
方式
认证
接口
安全
篇文章
项目
处理
内存
框架
页面
加密
代码
内容
多个
字符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技卖菜
互联网科技的
互联网科技革命
互联网女皇 腾讯科技
大白互联网科技
人人互联网科技是培训
美国互联网前沿科技
科技伦理 互联网公司
互联网巨头投资的硬核科技
湖南洣水互联网科技有限公司扣款
成都玖崟互联网科技有限公司乐商圈怎么样
南平创想时代互联网科技有限公司
和信科技工业互联网
辽宁互联网新科技
速维有品互联网信息科技(苏州)有限公司
黑云互联网科技有限公司
有人说阿里系是互联网科技企业
新氧科技和美国互联网有关系吗
米泉互联网科技专业怎么样
互联网时代高科技布局
互联网科技行业发展
互联网中国科技
海南科技产业互联网平台
蓝色互联网科技
上海电发互联网科技有限公司
华中科技大学互联网的牛人
上海互联网科技公司ppt
卡尔迅互联网科技有限公司
普陀区互联网教育科技管理办法
株洲百竞科技的互联网营销顾问