Java 一般原则';s getRoles返回空数组

Java 一般原则';s getRoles返回空数组,java,tomcat,userprincipal,genericprincipal,Java,Tomcat,Userprincipal,Genericprincipal,这是创建主体对象的代码 List<String> roles = new ArrayList(); roles.add(userRole); this.principal = new GenericPrincipal(username,"***********",roles); 从负责人那里获取角色 GenericPrincipal principal = (GenericPrincipal)request.getUserPrincipal(); String name = pri

这是创建主体对象的代码

List<String> roles = new ArrayList();
roles.add(userRole);
this.principal = new GenericPrincipal(username,"***********",roles);
从负责人那里获取角色

GenericPrincipal principal = (GenericPrincipal)request.getUserPrincipal();
String name = principal.getName();
GenericPrincipal principal = (GenericPrincipal)request.getUserPrincipal();
String[] roles = principal.getRoles();
当我打印主体对象时,我得到了
[username()]

我能从校长那里得到名字,但不能从角色那里得到。 角色[]的长度为0

我甚至尝试了getPassword()方法。它返回null。只有getName()方法才能正常工作


为什么角色数组为空?如何正确获取角色?

此处没有足够的信息回答您的问题。请求对象是什么?您有getRoles()方法的代码吗?您可以尝试将角色更改为ArrayList roles=principal.getRoles();它是HttpServletRequest对象,getRoles()实现是默认的tomcat实现。@user8537453 ArrayList也不起作用。