日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

[SpringSecurity]web权限方案_用户认证_查询数据库完成认证

發布時間:2023/12/4 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [SpringSecurity]web权限方案_用户认证_查询数据库完成认证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#mysql 數據庫連接 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/demo?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root
package com.atguigu.securitydemo1.config;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;@Configuration public class SecurityConfigTest extends WebSecurityConfigurerAdapter {@Autowiredprivate UserDetailsService userDetailsService;@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {auth.userDetailsService(userDetailsService).passwordEncoder(password());}@BeanPasswordEncoder password(){return new BCryptPasswordEncoder();} }

第一步 引入依賴

整合MyBatisPlus完成數據庫操作

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.5</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--lombok 用來簡化實體類--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency> </dependencies>

第二步 創建數據庫和數據庫表

第三步 創建users表對應實體類

package com.atguigu.securitydemo1.entity;import lombok.Data;@Data public class Users {private Integer id;private String username;private String password;}

第四步 整合mp,創建接口,繼承mp的接口

package com.atguigu.securitydemo1.entity;import lombok.Data;@Data public class Users {private Integer id;private String username;private String password;}

第五步 在MyUserDetailsService調用mapper里面的方法查詢數據庫進行用戶認證

package com.atguigu.securitydemo1.service;import com.atguigu.securitydemo1.entity.Users; import com.atguigu.securitydemo1.mapper.UsersMapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service;import java.util.List;@Service("userDetailsService") public class MyUserDetailsService implements UserDetailsService {@Autowiredprivate UsersMapper usersMapper;@Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {//調用userMapper方法,根據用戶名查詢數據庫QueryWrapper<Users> wrapper = new QueryWrapper<>();//where username = ?wrapper.eq("username",username);Users users = usersMapper.selectOne(wrapper);//判斷if (users==null)//數據庫沒有用戶名,認證失敗{throw new UsernameNotFoundException("用戶名不存在!");}List<GrantedAuthority> auths = AuthorityUtils.commaSeparatedStringToAuthorityList("rold");return new User(users.getUsername(),new BCryptPasswordEncoder().encode(users.getPassword()),auths);} }

第六步 在啟動類添加注解MapperScan

package com.atguigu.securitydemo1;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication @MapperScan("com.atguigu.securitydemo1.mapper") public class Securitydemo1Application {public static void main(String[] args) {SpringApplication.run(Securitydemo1Application.class, args);}}

總結

以上是生活随笔為你收集整理的[SpringSecurity]web权限方案_用户认证_查询数据库完成认证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。