千家信息网

Springboot安全框架整合SpringSecurity的示例分析

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍了Springboot安全框架整合SpringSecurity的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
千家信息网最后更新 2025年01月19日Springboot安全框架整合SpringSecurity的示例分析

这篇文章主要介绍了Springboot安全框架整合SpringSecurity的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1.工业级安全框架介绍

Spring Security基于Spring开发,项目中如果使用Spring作为基础,配合Spring Security做权限更加方便,而Shiro需要和Spring进行整合开发。因此作为spring全家桶中的Spring Security在java领域很常用。

2.建议搭建Spring Security环境

2.1在pom.xml中添加相关依赖

    4.0.0    org.example    springsecurityReview    1.0-SNAPSHOT            spring-boot-dependencies        org.springframework.boot        2.5.4                            org.springframework.boot            spring-boot-starter-web                            org.springframework.boot            spring-boot-starter-security                            org.springframework.boot            spring-boot-starter-thymeleaf            

2.2创建Handler类

package com.example.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class Handler {    @GetMapping("/index")    public String index(){        return "index";    }}

2.3创建简单的html和配置相关thymeleaf的路径

2.4最后再加个启动类,那么我们的整合测试就完成勒

package com.example;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class,args);    }}

2.5成果展示 用户名默认user,密码则随机生成的这串数字

3.进阶版使用

3.1用户名和密码自定义

3.2在config包下创建Encoder进行密码的校验和转码操作

将密码转成字符串形式,并通过match方法惊醒校验。

3.3赋予账号角色权限

package com.example.config;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter {    //角色和资源的关系    @Override    protected void configure(HttpSecurity http) throws Exception {        http.authorizeRequests().antMatchers("/admin").hasRole("ADMIN")        .antMatchers("/index").access("hasRole('ADMIN') or hasRole('USER') ")                .anyRequest().authenticated()        .and()        .formLogin()        .loginPage("/login")        .permitAll()        .and()        .logout()        .permitAll()        .and()        .csrf()        .disable();     }    @Override    protected void configure(AuthenticationManagerBuilder auth) throws Exception {       auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder())       .withUser("user").password(new MyPasswordEncoder()       .encode("000")).roles("USER")       .and()       .withUser("admin").password(new MyPasswordEncoder()       .encode("123")).roles("ADMIN","USER");    }}

最后达到admin账号能访问admin.html和index.html

user只能访问index.html的操作

感谢你能够认真阅读完这篇文章,希望小编分享的"Springboot安全框架整合SpringSecurity的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0