设置登陆的用户名和密码

第一种方式:通过配置文件

spring.security.user.name=atguigu
spring.security.user.password=atguigu

第二种方式:通过配置类

package com.atguigu.securitydemo1.config;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.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception {BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();String password = passwordEncoder.encode("123");auth.inMemoryAuthentication().withUser("lucy").password(password).roles("admin");}//密码要加密,可是要用到PasswordEncoder这个接口,
//所以我们要给这个接口创建一个对象,因为它做加密的时候要找这个对象
//找不到就要报错!!!@BeanPasswordEncoder password(){return new BCryptPasswordEncoder();}
}

第三种方式:自定义编写实现类

第一步 创建配置类,设置使用哪一个userDetailsService实现类

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.builders.WebSecurity;
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();}
}

第二步 编写实现类,返回User对象,User对象有用户名密码和操作权限

package com.atguigu.securitydemo1.service;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 {@Overridepublic UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {List<GrantedAuthority> auths = AuthorityUtils.commaSeparatedStringToAuthorityList("rold");return new User("marry",new BCryptPasswordEncoder().encode("123"),auths);}
}

[SpringSecurity]web权限方案_用户认证_设置用户名密码相关推荐

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

    #mysql 数据库连接 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc ...

  2. [SpringSecurity]web权限方案_用户认证_自定义用户登录页面

    在配置类中实现相关的配置 @Overrideprotected void configure(HttpSecurity http) throws Exception {http.formLogin() ...

  3. [SpringSecurity]web权限方案_用户授权_基于权限访问控制_基于角色访问控制_hasAuthority和hasAnyAuthority_hasRole和hasAnyRole

    基于角色或权限进行访问控制 hasAuthority 方法 如果当前的主体具有指定的权限,则返回 true,否则返回 false 在配置类设置当前访问地址有哪些 @Overrideprotected ...

  4. [SpringSecurity]web权限方案_用户授权_注解使用

    注解使用 @Secured 判断用户是否具有角色,可以访问方法,另外需要注意的是这里匹配的字符串需要添加前缀"ROLE_". 使用注解先要开启注解功能! 启动类(配置类)开启注解 ...

  5. [SpringSecurity]web权限方案_用户授权_自定义403页面

    自定义403页面 unauth.html <!DOCTYPE html> <html lang="en"> <head><meta cha ...

  6. [SpringSecurity]web权限方案_自动登陆_原理分析和具体实现

    自动登陆 1.cookie技术 2.安全框架机制实现自动登陆 这里我们使用安全框架机制实现自动登陆技术 实现原理 具体实现 第一步 创建数据库 CREATE TABLE `persistent_log ...

  7. [SpringSecurity]web权限方案_用户注销

    用户注销 在配置类中添加退出映射地址 //退出http.logout().logoutUrl("/logout").logoutSuccessUrl("/test/hel ...

  8. [SpringSecurity]web权限方案_CSRF功能

    CSRF CSRF功能默认是已经打开了! 具体过程可以阅读CsrfFilter这个过滤器的源码 CSRF 理解 在登录页面添加一个隐藏域 <input type="hidden&quo ...

  9. SpringSecurity(Web权限方案)

    SpringSecurity 一.基本概要 1.认证和授权 1.认证:用户是否登录 2.授权:用户是否有权利去做别的东西 2.特点 全面的权限控制 为web开发设计 旧版本不能脱离Web环境 新版本对 ...

最新文章

  1. 如何用python读取文本中指定行的内容
  2. 几行代码搞定ML模型,低代码机器学习Python库正式开源
  3. MySQL 关于毫秒的处理
  4. 广度优先搜索_深度优先搜索和广度优先搜索[09]
  5. 【问题】用ant编译时,提示编码utf为不可映射字符
  6. hbase集群搭建,hbase单个节点重启
  7. 执行计划oracle中cost,执行计划中cost计算方法
  8. 如何让Element UI的Message消息提示每次只弹出一个
  9. 2017/09/15
  10. 从理论上来说,国足是否还有出线的可能性?分析数据后给你答案
  11. 店庆遇上双11,买书的最大优惠来了!
  12. 著名线性代数教授 85岁麻省理工学院教授,给2020本科生教授《线性代数入门》
  13. php字符串去重和去空,php去空格
  14. 太戈编程DEVC++教师答案库
  15. 为什么说精益管理模式是适合中国企业的管理方法(zt)
  16. 什么是NFV?什么是SDN?他与SDN的区别是什么
  17. OpenAI公开Dota 2论文:胜率99.4%,「手术」工具连续迁移训练
  18. JS移动DOM节点,将某节点下所有子节点移动(剪切)到另一个节点下。新手很容易踩的坑!
  19. android 自定义圆形进度条拖动样式,android自定义圆形进度条
  20. 虫洞wormhole

热门文章

  1. [转]ES6、ES7、ES8、ES9、ES10新特性一览 (个人整理,学习笔记)
  2. 利用浏览器调试功能 计算 百度网盘 文件数量 V2
  3. 【土地评价与土地管理】案例:某地区土地农业利用潜力评价
  4. ArcGIS怎样获取重分类后各类所占的像元个数
  5. Android之系统服务-WindowManager
  6. Android之如何解决ScrollView起始位置不是最顶部的解决办法
  7. inputn函数与input函数的区别
  8. linux+4.4+android,Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法
  9. python34怎么安装_简明Python3教程 4.安装
  10. matlab作业1参考答案,matlab课后习题答案1到6章