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; } }

浙公网安备 33010602011771号