博客
关于我
二.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/

    你可能感兴趣的文章
    OpenStreetMap初探(一)——了解OpenStreetMap
    查看>>
    openSUSE 13.1 Milestone 2 发布
    查看>>
    openSUSE推出独立 GUI 包管理工具:YQPkg,简化了整个软件包管理流程
    查看>>
    OpenVP共用账号 一个账号多台电脑登录
    查看>>
    OpenVSwtich(OVS)Vlan间路由实战 附实验环境
    查看>>
    Openwrt LuCI模块练习详细步骤
    查看>>
    openwrt_git_pull命令提示merger冲突时如何解决?
    查看>>
    OpenWrt包管理软件opkg的使用(极路由)
    查看>>
    OpenWrt固件编译刷机完全总结
    查看>>
    Open××× for Linux搭建之二
    查看>>
    Open×××有线网络时使用正常,无线网络时使用报错的解决方案
    查看>>
    Opera Mobile Classic Emulator
    查看>>
    Operation not supported on read-only collection 的解决方法 - [Windows Phone开发技巧系列1]
    查看>>
    OperationResult
    查看>>
    Operations Manager 2007 R2系列之仪表板(多)视图
    查看>>
    operator new and delete
    查看>>
    operator new 与 operator delete
    查看>>
    operator() error
    查看>>
    OPPO K3在哪里打开USB调试模式的完美方法
    查看>>
    oppo后端16连问
    查看>>