java - 获取有关校长的信息

标签 java security jakarta-ee spring-security

我有几种使用此签名的静态 Web 服务的方法

public @ResponseBody SomeObject someMethodSignature(Principal principal){

鉴于它是遗留代码,有没有办法从主体获取其他信息(Principaljava.security 的一个接口(interface),只有一个有用的方法 getName()) 除了名称之外不需要将任何其他内容作为参数传递给方法?喜欢权限之类的东西吗?

谢谢

最佳答案

如果您如您所说使用 Spring Security,那么 Principal 对象应该是 Spring Security 的 Authentication 接口(interface)的实例。请参阅API Javadoc .

这意味着您可以强制转换主体并调用其上的 getAuthorities 方法,如下所示

((Authentication)principal).getAuthorities();

请注意,HttpServletRequest 的其他与安全相关的方法也会被重写,因此您还可以更改方法以获取请求对象并调用,例如 isUserInRole 方法如果这适合您的要求。这将避免您在类中添加对 Spring Security 的任何依赖。

关于java - 获取有关校长的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20406039/

相关文章:

java - 私有(private)整数变量在更新一次后不再更新(Java)

java - 您知道哪些用于 Java EE JSP 的标记库,例如 displaytag?

java - 在 Web 应用程序中使用全局服务和 *PortType 类?

security - 小书签方法

php - 如何防止PHP中的SQL注入(inject)?

javascript - 长轮询服务器原理(客户端认证)

java - 安装 JDK 1.7 和 Java EE 7 SDK 后出现混淆?

java - GWT HTML 不显示换行符

java - Thorntail JMS 到远程 ActiveMQ 服务器?

java - 启动后立即关闭 Spring Boot 应用程序