博客
关于我
二.SpringSecurity基础-简单登录实现
阅读量:732 次
发布时间:2019-03-21

本文共 2420 字,大约阅读时间需要 8 分钟。

Spring Security 是一个基于 Spring 应用程序提供声明式安全访问控制的框架,通过 IoC 和 AOP 等核心Spring功能,简化了企业系统安全配置的复杂性。

1. Spring Security 介绍

Spring Security 能够帮助开发者在基于 Spring 的企业应用中实现基于角色的访问控制( Role-based Access Control, RBAC )。它通过定义安全规则和接收令牌的方式,保护应用程序中的敏感资源,确保只有授权的用户能够访问这些资源。

2. Spring Security 入门

2.1 搭建工程

基于 Spring Boot 搭建一个 web 项目,项目名称建议命名为 spring_security_demo。这是一个典型的 Spring Boot 项目结构。

2.2 导入依赖

在项目的 pom.xml 中引入必要的依赖:

  • spring-boot-starter-security:提供 Spring Security 的核心功能
  • spring-boot-starter-web:集成 Spring Web 组件
  • spring-boot-starter-test:用于测试环境支持
  • junit Packs:单元测试工具

这些依赖会在 Spring Boot 父类库中找到对应的版本,避免手动配置版本号。

2.3 主配置类

创建 ApplicationConfig.java 文件,作为 Spring Boot 运行的主配置类:

@SpringBootApplicationpublic class ApplicationConfig {    public static void main(String[] args) {        SpringApplication.run(ApplicationConfig.class);    }}

2.4 Web 控制器

创建 AuthController.java 文件,负责处理登录成功后的跳转:

@Controllerpublic class AuthController {    @RequestMapping("/loginSuccess")    @ResponseBody    public String loginSuccess() {        return "登录成功";    }}

2.5 配置 Spring Security

创建 WebSecurityConfig.java 文件,继承自 WebSecurityConfigurerAdapter,进行安全配置:

@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter {    @Bean    public UserDetailsService userDetailsService() {        InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserDetailsManager();        inMemoryUserDetailsManager.createUser(User.withUsername("zs").password("123").authorities("admin").build());        return inMemoryUserDetailsManager;    }    @Bean    public PasswordEncoder passwordEncoder() {        return NoOpPasswordEncoder.getInstance();    }    @Override    protected void configure(HttpSecurity http) throws Exception {        http.authorizeRequests()                .antMatchers("/login").permitAll()                .anyRequest().authenticated()                .and().formLogin()                    .successForwardUrl("/loginSuccess")                .and().logout().permitAll()                .and().csrf().disable();    }}

2.6 测试

在浏览器中访问 http://localhost:8080/login,将会自动定向安全页面。输入用户名 zs 和密码 123,成功登录后将重定向至 /loginSuccess 页面显示 "登录成功"。

3. 认证流程小结

在这个案例中,我们已经完成了一个基本的 Spring Boot + Spring Security 入门配置。主要包括以下步骤:

  • Spring Security 根据配置文件中的设置,对所有需要认证的资源进行拦截
  • 未经授权的访问请求将被自动 redirect 到 "/login" 页面进行认证
  • 用户登录成功后,系统会自动跳转至 "/loginSuccess" 页面返回成功提示信息
  • 测试过程中可以验证各个安全配置是否正常生效,包括登录认证、权限控制等功能
  • 这个简单的案例展示了 Spring Security 的基本使用方式,适合用于快速搭建安全防护的 Spring 应用程序。

    转载地址:http://dadgz.baihongyu.com/

    你可能感兴趣的文章
    R2的版本由来
    查看>>
    PHP获取图片宽度高度、大小尺寸、图片类型、用于布局的img属性
    查看>>
    PHP获取当前文件的绝对路径
    查看>>
    PHP获取当前时间、时间戳的各种格式写法汇总
    查看>>
    PHP获取当前页面的完整URL
    查看>>
    php获取数据库中数据生成json,中文乱码问题的解决方案
    查看>>
    php获取文件夹中文件的两种方法
    查看>>
    PHP获取日期的一些方法总结
    查看>>
    R2学习记录
    查看>>
    PHP获取本周的每一天的时间
    查看>>
    php获取用户真实IP和防刷机制
    查看>>
    php获取网页内容的三种方法
    查看>>
    R-CNN算法优化策略
    查看>>
    PHP规范PSR0和PSR4的理解
    查看>>
    php解析ipa包,获取logo
    查看>>
    R&Rstudio安装各种包
    查看>>
    php设置cookie,在js中如何获取
    查看>>
    php设置socket超时时间
    查看>>
    php设计模式 萨莱 pdf,PHP设计模式 建造者模式
    查看>>
    PHP设计模式之----观察者模式
    查看>>