Spring Security实战--(二)数据库实现

本文介绍了如何在Spring Security中实现数据库授权,包括自定义数据库、控制器权限配置、内存与数据库多用户配置,以及页面验证。通过UserDetailsService和UserDetails接口管理用户信息,使用PasswordEncoder处理密码加密,确保安全。
摘要由CSDN通过智能技术生成

一、数据库的实现

Spring Security提供了默认数据库模板和自定义数据库两种方式,默认数据库方式就不说了,因为基本没人用到

二、自定义数据库

2.1 不同权限controller建立

建立下相关controller,为不同权限做准备

在这里插入图片描述
代码如下,注释已经解释清楚了,就不多说了

@RestController
@RequestMapping("admin/api")
public class AdminController {
   

    /**
     * 管理员访问路径
     * @return
     */
    @GetMapping("hello")
    public String hello(){
   
        return "admin,hello";
    }

}

@RestController
@RequestMapping("/user/api")
public class UserController {
   

    /**
     * 注册用户访问路径
     * @return
     */
    @GetMapping("hello")
    public String hello(){
   
        return "user,hello";
    }

}

@RestController
@RequestMapping("/app/api")
public class AppController {
   

    /**
     * 游客访问路径
     * @return
     */
    @GetMapping("hello")
    public String hello(){
   
        return "app,hello";
    }
}

2.2 不同权限资源授权配置

顺便演示一下内存多用户配置

2.2.1 内存多用户配置

配置访问路径权限和用户组权限

package com.example.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
   

    @Override
    protected void configure(HttpSecurity http) throws Exception {
   
        http.authorizeRequests()
                .antMatchers("/admin/api/**").hasRole("ADMIN")
                .antMatchers("/user/api/**").
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值