package com.crazy.employee.manage.config;
import org.springframework.context.annotation.Configuration;
/**
* @author zhxm
* @version 1.0.0
* @ClassName SecurityConfig
* @Description
* @date 2023-11-29
*/
@Configuration
public class SecurityConfig {}
// extends WebSecurityConfigurerAdapter {
// @Bean
// PasswordEncoder passwordEncoder() {
//// return NoOpPasswordEncoder.getInstance();// 密码不加密
// return new BCryptPasswordEncoder();// 密码加密
// }
//
// @Override
// protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// // 在内存中配置 2 个用户
// // 密码不加密
// auth.inMemoryAuthentication()
// .withUser("admin").password("123456").roles("admin")
// .and()
// .withUser("user").password("123456").roles("user");
// // 密码加密
//// auth.inMemoryAuthentication()
//// .withUser("admin").password("$2a$10$fB2UU8iJmXsjpdk6T6hGMup8uNcJnOGwo2.QGR.e3qjIsdPYaS4LO").roles("admin")
//// .and()
//// .withUser("user").password("$2a$10$3TQ2HO/Xz1bVHw5nlfYTBON2TDJsQ0FMDwAS81uh7D.i9ax5DR46q").roles("user");
// }
//
// @Override
// protected void configure(HttpSecurity http) throws Exception {
// // 开启登录配置
// http.authorizeRequests()
// // 表示 admin 角色能访问
// .antMatchers("/admin/**").hasRole("admin")
// // 表示 admin 或 user 角色都能访问
// // .antMatchers("/user/**").hasAnyRole("admin", "user")
// // 表示 admin 或 user 角色都能访问
// .antMatchers("/user/**").access("hasAnyRole('admin','user')")
// // 表示剩余的其他接口,登录之后就能访问
// .anyRequest().authenticated()
// .and()
// .formLogin()
// // 表示登录页的地址,例如当你访问一个需要登录后才能访问的资源时,系统就会自动给你通过【重定向】跳转到这个页面上来
// .loginPage("/login")
// // 表示处理登录请求的接口地址,默认为 /login
// .loginProcessingUrl("/doLogin")
// // 定义登录时,用户名的 key,默认为 username
// .usernameParameter("uname")
// // 定义登录时,密码的 key,默认为 password
// .passwordParameter("passwd")
// // 登录成功的处理器
// .successHandler(new AuthenticationSuccessHandler() {
// @Override
// public void onAuthenticationSuccess(HttpServletRequest req, HttpServletResponse resp, Authentication authentication) throws IOException, ServletException, IOException {
// resp.setContentType("application/json;charset=utf-8");
// PrintWriter out = resp.getWriter();
// Map<String, Object> map = new HashMap<>();
// map.put("status", 200);
// map.put("msg", authentication.getPrincipal());
// out.write(new ObjectMapper().writeValueAsString(map));
// out.flush();
// out.close();
// }
// })
// // 登录失败的处理器
// .failureHandler(new AuthenticationFailureHandler() {
// @Override
// public void onAuthenticationFailure(HttpServletRequest req, HttpServletResponse resp, AuthenticationException e) throws IOException, ServletException {
// resp.setContentType("application/json;charset=utf-8");
// PrintWriter out = resp.getWriter();
// Map<String, Object> map = new HashMap<>();
// map.put("status", 401);
// if (e instanceof LockedException) {
// map.put("msg", "账户被锁定,登录失败!");
// } else if (e instanceof BadCredentialsException) {
// map.put("msg", "用户名或密码输入错误,登录失败!");
// } else if (e instanceof DisabledException) {
// map.put("msg", "账户被禁用,登录失败!");
// } else if (e instanceof AccountExpiredException) {
// map.put("msg", "账户过期,登录失败!");
// } else if (e instanceof CredentialsExpiredException) {
// map.put("msg", "密码过期,登录失败!");
// } else {
// map.put("msg", "登录失败!");
// }
// out.write(new ObjectMapper().writeValueAsString(map));
// out.flush();
// out.close();
// }
// })
// // 和表单登录相关的接口统统都直接通过
// .permitAll()
// .and()
// .logout()
// .logoutUrl("/logout")
// // 登出成功的处理器
// .logoutSuccessHandler(new LogoutSuccessHandler() {
// @Override
// public void onLogoutSuccess(HttpServletRequest req, HttpServletResponse resp, Authentication authentication) throws IOException, ServletException {
// resp.setContentType("application/json;charset=utf-8");
// PrintWriter out = resp.getWriter();
// Map<String, Object> map = new HashMap<>();
// map.put("status", 200);
// map.put("msg", "注销登录成功!");
// out.write(new ObjectMapper().writeValueAsString(map));
// out.flush();
// out.close();
// }
// })
// .permitAll()
// .and()
// .csrf().disable()
// .exceptionHandling()
// // 无访问权限的处理器
// .accessDeniedHandler(new AccessDeniedHandler() {
// @Override
// public void handle(HttpServletRequest req, HttpServletResponse resp, AccessDeniedException e) throws IOException, ServletException {
// resp.setContentType("application/json;charset=utf-8");
// PrintWriter out = resp.getWriter();
// Map<String, Object> map = new HashMap<>();
// map.put("status", 403);
// map.put("msg", "无访问权限!");
// out.write(new ObjectMapper().writeValueAsString(map));
// out.flush();
// out.close();
// }
// })
// // 默认情况下用户直接访问一个需要认证之后才可以访问的请求时,会被重定向到.loginPage("/login"),前后端分离时会导致跨域。
// // 增加如下配置后,就不会发生重定向操作了,服务端会直接给浏览器一个 JSON 提示
// .authenticationEntryPoint(new AuthenticationEntryPoint() {
// @Override
// public void commence(HttpServletRequest req, HttpServletResponse resp, AuthenticationException authException) throws IOException, ServletException {
// resp.setContentType("application/json;charset=utf-8");
// PrintWriter out = resp.getWriter();
// Map<String, Object> map = new HashMap<>();
// map.put("status", 4
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
测试-实现职员信息管理系统.zip (13个子文件)
employee_Manage-master
pom.xml 4KB
src
test
java
com
crazy
employee
manage
EmployeeManageApplicationTests.java 234B
main
resources
mapper
EmployeeMapper.xml 5KB
application.yml 490B
java
com
crazy
employee
manage
mapper
EmployeeMapper.java 2KB
controller
EmployeeController.java 3KB
service
EmployeeService.java 1KB
impl
EmployeeServiceImpl.java 2KB
EmployeeManageApplication.java 454B
domain
AjaxResult.java 5KB
Employee.java 3KB
config
SecurityConfig.java 9KB
SwaggerConfig.java 2KB
共 13 条
- 1
资源评论
博士僧小星
- 粉丝: 1922
- 资源: 5884
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- postgresql-42.7.3.jar
- 2024-05-21 20-36-43.mkv
- 基于QT+C++的智能云监护仪项目,能够实时显示使用者心电、血氧、血压波形及其它各种参数+源码(毕业设计&课程设计&项目开发)
- 基于java开发的app接收硬件端传输的心音信号,具有显示心音波形,发出心音的功能+源码(毕业设计&课程设计&项目开发)
- Python 程序语言设计模式思路-行为型模式:职责链模式:将请求从一个处理者传递到下一个处理者
- 9241703124789646.16健身系统2.apk
- postgresql-16.3-1-windows-x64.exe
- Python 程序语言设计模式思路-结构型模式:装饰器讲解及利用Python装饰器模式实现高效日志记录和性能测试
- 基于YOLOv5和DeepSORT的多目标跟踪仿真与记录
- Python 程序语言设计模式思路-创建型模式:原型模式:通过复制现有对象来创建新对象,面向对象编程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功