手动注入SecurityUtils.getSubject().getPrincipal()
时间: 2023-12-01 14:03:12 浏览: 71
手动注入 `SecurityUtils.getSubject().getPrincipal()` 通常用于在不依赖框架的情况下获取当前登录用户信息。这通常需要手动在代码中注入该信息。
具体实现方式如下:
1. 首先,你需要将用户信息存储到 `SecurityUtils.getSubject().getSession()` 中。可以通过以下代码实现:
```
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
session.setAttribute("user", user);
```
这里的 `user` 是你自己定义的用户对象。
2. 然后,你需要在需要获取用户信息的地方手动注入 `SecurityUtils.getSubject().getPrincipal()`。例如:
```
Subject currentUser = SecurityUtils.getSubject();
User user = (User) currentUser.getPrincipal();
```
这里的 `User` 是你自己定义的用户对象。
需要注意的是,这种方式获取用户信息需要自己手动管理用户登录状态,包括用户的登录、注销等操作,因此不如使用框架提供的安全认证机制来管理用户登录状态更加方便和安全。
相关问题
SecurityUtils.getSubject()
SecurityUtils.getSubject()是Apache Shiro框架中的一个静态方法,用于获取当前用户的Subject对象。Subject对象代表了当前用户的安全操作主体,可以用于进行身份认证、授权和会话管理等操作。
通过调用SecurityUtils.getSubject()方法,可以获取到当前执行代码的用户Subject对象。通过Subject对象,可以进行一系列的安全操作,例如:
1. 身份认证:可以使用Subject对象进行用户身份认证,验证用户的用户名和密码是否正确。
2. 授权:可以使用Subject对象进行权限控制,判断用户是否具有执行某个操作的权限。
3. 会话管理:可以使用Subject对象进行会话管理,例如创建、销毁和获取当前用户的会话信息。
需要注意的是,使用SecurityUtils.getSubject()方法前,需要先配置好Shiro框架,并且在当前环境中已经进行了用户身份认证。
SecurityUtils.getSubject().getPrincipal();
SecurityUtils.getSubject().getPrincipal()是Shiro框架中的一个方法,用于获取当前登录用户的信息。在Shiro框架中,用户信息是在登录时设置的,一般是通过Realm对象的实现类来进行设置。在Realm中,需要实现doGetAuthenticationInfo方法,该方法用于验证用户身份并返回用户信息,返回的用户信息会被设置到Subject对象中,通过调用SecurityUtils.getSubject().getPrincipal()方法可以获取到该信息。同时,需要在ShiroFilterFactoryBean中配置拦截规则,以确保访问的接口需要进行身份验证。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)