spring boot Security 简单使用

  1. 引入依赖

    <!-- security -->
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
  2. 配置 SecurityConfigbr/>@Configuration
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
            @Autowired
            UserDetailServiceImpl userDetailService;
            @Autowired
            LoginSuccessHandler loginSuccessHandler;
    
            @Override
            protected void configure(AuthenticationManagerBuilder auth) throws Exception {
                    //自定义用户验证和加密方式
                    auth.userDetailsService(userDetailService).passwordEncoder(new BCryptPasswordEncoder());
            }
    
            @Override
            protected void configure(HttpSecurity http) throws Exception {
                    http.formLogin()                    //  定义当需要用户登录时候,转到的登录页面。
            //          .loginPage("/login.html") //自定义登录页面
    //                .loginProcessingUrl("/login") //自定义登录接口地址
                                    .successHandler(loginSuccessHandler)
                                    .and()
                                    // 定义哪些URL需要被保护、哪些不需要被保护
                                    .authorizeRequests().antMatchers("/login").permitAll() //不需要保护的URL
                                    .anyRequest()               // 任何请求,登录后可以访问
                                    .authenticated()
                                    .and()
                                    .logout().logoutSuccessUrl("/login").permitAll() // 登出
                                    .and()
                                    .csrf().disable();
            }
    }

3.用户验证处理

        @Component
        public class UserDetailServiceImpl implements UserDetailsService {
                /**
                 * 用户校验
                 * @param s
                 * @return
                 * @throws UsernameNotFoundException
                 */
                @Override
                public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
                        Collection<GrantedAuthority> collection = new ArrayList<>();//权限集合
                        String password = new BCryptPasswordEncoder().encode("123456");
                        User user = new User(s,password,collection);

                        return user;
                }

        }

4.登录成功后处理

@Component
public class LoginSuccessHandler implements AuthenticationSuccessHandler {
        @Override
        public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {

                httpServletResponse.setContentType("application/json;charset=UTF-8");

                httpServletResponse.getWriter().write(authentication.getName());
        }
}

HttpSecurity 类还有很可以使用的函数
请参考:
https://docs.spring.io/spring-security/site/docs/3.2.4.RELEASE/apidocs/org/springframework/security/config/annotation/web/builders/HttpSecurity.html

----end----

原文地址:https://blog.51cto.com/5013162/2404946

时间: 2024-11-05 15:57:35

spring boot Security 简单使用的相关文章

Spring Boot Security

Spring Boot Security Spring Boot includes an additional set of tools that can make the application development time a little more faster by reducing its restart time. Security https://docs.spring.io/spring-boot/docs/current/reference/html/boot-featur

Spring Boot Security OAuth2 实现支持JWT令牌的授权服务器

概要 之前的两篇文章,讲述了Spring Security 结合 OAuth2 .JWT 的使用,这一节要求对 OAuth2.JWT 有了解,若不清楚,先移步到下面两篇提前了解下. Spring Boot Security 整合 OAuth2 设计安全API接口服务 Spring Boot Security 整合 JWT 实现 无状态的分布式API接口 这一篇我们来实现 支持 JWT令牌 的授权服务器. 优点 使用 OAuth2 是向认证服务器申请令牌,客户端拿这令牌访问资源服务服务器,资源服务

Spring boot security rest basic Authentication example

1. Maven dependency pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> <relativePath /> </parent> <depe

Spring Boot之简单的MVC

最近开始看Spring Boot,发现其开发起来真是方便.今天就来实现一个简单的Spring MVC 请求,纯Java代码的哦. 1.Maven必不可少,先看看都加载了那些依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20

maven+spring boot搭建简单微服务

项目需要使用spring boot,所以自学了几天,仅提供给新手,请根据文档查看-该项目仅是测试项目,并不完善和严谨,只实现了需要使用的基本功能.写该博客一是希望能够帮助刚学习的新人,二是加深自己的印象,如果忘了也可以再看看,有些片段是从其他博客学习来的,如有问题希望能提出来,由衷的表示感谢. 主要开发环境:jdk:1.8: maven:3.3:tomcat:8等. 涉及技术:spring boot.springMVC.maven.JdbcTemplate.json.HttpClient等. 推

Spring Boot Starters简单介绍

1.概述 依赖管理是任何复杂项目的关键方面.手动完成此操作并不理想; 你花在它上面的时间越多,你在项目的其他重要方面所花费的时间就越少. 构建Spring Boot启动器是为了解决这个问题.Starter POM是一组方便的依赖描述符,您可以在应用程序中包含这些描述符.您可以获得所需的所有Spring和相关技术的一站式服务,而无需搜索示例代码并复制粘贴依赖描述符. 有超过30个启动器 - 让我们在以下部分中看到它们中的一些. 2.Web Starter(servlet容器) 首先,我们来看看开发

Spring boot Security 登陆安全配置

实现的效果 访问url时,如果未登录时跳转到Login界面,要求用户登陆,如果登陆过返回请求的数据. 效果图 访问数据时,未登录返回login界面 登陆操作 登陆成功进入登出界面 登陆成功后再次访问数据 POM 文件 加入 Security 配置,数据库使用maybatis. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM

spring boot发简单文本邮件

首先要去邮箱打开POP3/SMTP权限: 然后会提供个授权码,用来发送邮件.忘记了,可以点生成授权码再次生成. 1.引入spring boot自带的mail依赖,这里版本用的:<spring-boot.version>1.4.3.RELEASE</spring-boot.version> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin

IDEA spring boot jpa简单案例

先新建一个spring boot工程,导入jpa依赖 在pom.xml中显示 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> 原文地址:https://www.cnblogs.com/IGDR/p/8966746.html