java spring boot 权限认证总结瞎记一通,各种 方案。附近如何运行jar包。和如何读配文件
在正式笔之 前先来思考如何将java 的包打包成jar 包同,运行时指定配置,这样运行,

以上问题有空在来研究,有空在来补这个文档
首先呢,先来说说Session 怎么使用,这个在sping boot 很简单 ,就是通过属性来操作获取和设置
session 使用
import javax.servlet.http.HttpSession;
// ...
@PostMapping("/login")
public String login(@RequestParam String username, @RequestParam String password, HttpSession session) {
// 假设验证了用户名和密码
if (isValidUser(username, password)) {
// 将用户信息存入Session
session.setAttribute("user", username);
return "redirect:/home";
} else {
return "login";
}
}
@GetMapping("/home")
public String home(HttpSession session, Model model) {
// 从Session中获取用户信息
String username = (String) session.getAttribute("user");
if (username != null) {
model.addAttribute("username", username);
return "home";
} else {
return "redirect:/login";
}
}
session 也可以结合本地缓存
spring:
session:
store-type: redis
redis:
host: localhost
port: 6379 然后用redis 来记录 session @GetMapping("/setSessionId")
public String setSessionId(HttpSession session, HttpServletResponse response) {
// 生成一个新的Session ID
session.invalidate();
session = request.getSession(true); // 将新的Session ID发送给客户端(这里通过响应头)
response.setHeader("X-Session-Id", session.getId()); return "setSessionId";
} @GetMapping("/getSessionId")
public String getSessionId(@RequestHeader(value = "X-Session-Id", required = false) String sessionId, Model model) {
if (sessionId != null) {
// 使用Session ID从服务器获取Session
HttpSession session = request.getSession(false);
if (session != null && session.getId().equals(sessionId)) {
model.addAttribute("sessionId", sessionId);
return "getSessionId";
}
}
return "error";
}
jwt 使用 首先这个也是一个依融包,先导入后增加一个配置,然后配置挡截器类
这个先略,稍后总结
Spring Boot 中集成 Spring Security 进行基本的身份认证
如果我们是用idea 新建的springboot 一开始就勾选了 Spring Security 。那么在构建时idea 会帮我做一些默认配置,
所以一登陆就开始认证了,新增一下用户名为user 密码在控制显示是一个uuid 当然呢我们更想自己配置细节
$ecurityProperties
初始化配置,配置了默认的用户名(user)和密码(uuid)。在application.properties中配置自定义用户名和密码。
例如:
spring.security.user.name=myusername
spring.security.user.password=mypassword
配置路径上下文
server.servlet.context-path=/myapp
通过内存来管理
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager; @Configuration
public class WebSecurityConfig { @Bean
public UserDetailsService userDetailsService() {
// 创建基于内存的用户信息管理器
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build());
return manager;
}
}
java spring boot 权限认证总结瞎记一通,各种 方案。附近如何运行jar包。和如何读配文件的更多相关文章
- Java Spring Boot VS .NetCore (九) Spring Security vs .NetCore Security
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- 从零一起学Spring Boot之LayIM项目长成记(五)websocket
前言 距离上一篇已经比较久的时间了,项目也是开了个头.并且,由于网上的关于Spring Boot的websocket讲解也比较多.于是我采用了另外的一个通讯框架 t-io 来实现LayIM中的通讯功能 ...
- 从零一起学Spring Boot之LayIM项目长成记(四) Spring Boot JPA 深入了解
前言 本篇内容主要是一些关于JPA的常用的一些用法等.内容也是很多是看其他博客学来的,顺道在本系列博客里抽出一篇作为总结.下面让我们来看看吧. 不过我更推荐大家读本篇:https://lufficc. ...
- Java Spring Boot VS .NetCore (十一)自定义标签 Java Tag Freemarker VS .NetCore Tag TagHelper
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- 从零一起学Spring Boot之LayIM项目长成记(二) LayIM初体验
前言 接上篇,已经完成了一个SpringBoot项目的基本搭建.那么现在就要考虑要做什么,怎么做的问题.所以本篇内容不多,带大家一起来简单了解一下要做的东西,之前有很多人不知道从哪里下手,那么今天我带 ...
- 从零一起学Spring Boot之LayIM项目长成记(一) 初见 Spring Boot
项目背景 之前写过LayIM的.NET版后端实现,后来又写过一版Java的.当时用的是servlet,websocket和jdbc.虽然时间过去很久了,但是仍有些同学在关注.偶然间我听说了Spring ...
- 从零一起学Spring Boot之LayIM项目长成记(三) 数据库的简单设计和JPA的简单使用。
前言 今天是第三篇了,上一篇简单模拟了数据,实现了LayIM页面的数据加载.那么今天呢就要用数据库的数据了.闲言少叙,书归正传,让我们开始吧. 数据库 之前有好多小伙伴问我数据库是怎么设计的.我个人用 ...
- Java Spring Boot VS .NetCore (一)来一个简单的 Hello World
系列文章 Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filte ...
- Java Spring Boot VS .NetCore (二)实现一个过滤器Filter
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
- Java Spring Boot VS .NetCore (三)Ioc容器处理
Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...
随机推荐
- VMware Ubuntu虚拟机打开报错问题
问题描述 昨天虚拟机卡死,我把VMware Workstation的进程用任务管理器杀掉了,今天重新打开虚拟机却发现以下报错 报错内容 另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘" ...
- 算法金 | 10 大必知的自动化机器学习库(Python)
大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 一.入门级自动化机器学习库 1.1 Auto-Sklearn 简介: Auto-Skl ...
- 初学go语言
for(int a = 0; a<10 ; a++){ // c语言的循环 } for a := 0 ; a<10 ; a++ { // go语言的循环 } // for二边的括号 ...
- LeetCode 460. LFU Cache LFU缓存 (C++/Java)
题目: Design and implement a data structure for Least Frequently Used (LFU)cache. It should support th ...
- Linux扩展篇-shell编程(十)-shell范式
shell编程提供一个范式,有利于统一程序风格,增加可读性. 范式: ASSIGN SHELL/指定壳 DESCRIPTION/程序说明 BODY/程序体 扩展: 1.ASSIGN SHELL/指定壳 ...
- INFINI Labs 产品更新 | Easysearch 支持 SQL 查询、Console 告警功能支持邮件等多渠道
INFINI Labs 产品又更新啦~.本次更新概要如下:Easysearch 新增 SQL 插件和JDBC 驱动,支持 SQL 查询,支持 SQL 常用函数等:Console 针对告警功能做了升级优 ...
- 判断URL是否编码,编码后的sign对签名和验签都有影响,导致验签不通过
判断URL是否编码,编码后的sign对签名和验签都有影响,导致验签不通过如果含有 + %符号无法判断, 否则判断不准或报错 Exception in thread "main" j ...
- echo输出带颜色的字
文章目录 格式 所有颜色 字体样式 示例 格式 \033[A;F;Bm #放在文本的左边,可以影响后面所有字体的样式 解释: F代表字体颜色值(Font),颜色编号30~37. B代表背景颜色值(Ba ...
- Vim的移动大法
Vim的移动大法 移动光标的按键 "h" 向左移动 "j"向下移动 "k"向上移动 "l"向右移动 在单词之间移动 注: ...
- LED虚拟拍摄-跟踪算法
LED虚拟拍摄-跟踪算法 图引用拍摄黑科技,LED虚拟影棚揭秘 标定流程 上面是一台Track设备,现精度比较高的主要是Redspy,Mosys,一般影视用这二种,其底层技术参考SMAL单目+惯性传感 ...