Spring Security中认证和授权模式

1. HTTP授权配置

这个方法配置了HTTP安全,即设定了哪些用户(基于他们的角色)可以访问应用中的哪些资源。
主要组件:
  • URL授权: 定义哪些角色可以访问应用中特定的URL模式。
  • 表单登录: 配置应用程序使用基于表单的登录过程进行用户认证。
代码:
@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("/").permitAll()
        .antMatchers("/level1/**").hasRole("vip1")
        .antMatchers("/level2/**").hasRole("vip2")
        .antMatchers("/level3/**").hasRole("vip3")
        .and()
    .formLogin();
}

2. 认证配置

这个方法通过指定用户存储和验证的方式来设置认证机制。
主要组件:
  • 内存中的认证: 在应用程序内存中直接定义了用户及其角色。
  • 密码编码: 指定使用BCryptPasswordEncoder对密码进行加密,这是一种密码学散列算法,用于安全存储密码。
代码:
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication()
        .passwordEncoder(new BCryptPasswordEncoder())
        .withUser("kuangshen").password("123456").roles("vip2", "vip3")
        .and()
        .withUser("root").password("123456").roles("vip1", "vip2", "vip3")
        .and()
        .withUser("guest").password("123456").roles("vip1");
}
  • HTTP授权控制

    • configure(HttpSecurity http)方法处理HTTP请求的安全配置。使用authorizeRequests()方法,可以指定URL模式和访问这些URL所需的认证。例如,所有用户都可以访问主页("/"),但其他页面如"/level1/**"需要特定角色如"vip1"。
    • formLogin()启用了Spring Security提供的用户名和密码表单登录的内置机制。
  • 认证配置:

    • configure(AuthenticationManagerBuilder auth)方法定义了Spring Security的AuthenticationManager是如何构建的。它使用内存中的认证来直接在配置中定义用户、他们的密码和角色。passwordEncoder()方法指定使用BCryptPasswordEncoder来加密密码。这非常重要,因为即使密码数据被泄露,实际密码仍然得到了保护。
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xwzzz_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值