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来加密密码。这非常重要,因为即使密码数据被泄露,实际密码仍然得到了保护。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部