当前位置: 首页 > 知识库问答 >
问题:

声纳要求使"UserProfile"可序列化或不存储在会话中

曹光霁
2023-03-14

我有以下一段代码在我的程序,我正在运行SonarQube 5的代码质量检查后,它与Maven集成。

然而,Sonar要求将“UserProfile”序列化,或者不将其存储在会话中。

为什么?

private void setUserProfileinSession(HttpServletRequest request,
        Authentication authentication) {

    List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(
            authentication.getAuthorities());
    GrantedAuthority authority = authorities.get(0);
    UserProfile userProfile = new UserProfile();
    userProfile.setUserName(authentication.getName());
    userProfile.setUserRole(authority.getAuthority());
    HttpSession session = request.getSession();
    session.setAttribute(EnumGlobal.USERPROFILE.getName(), userProfile);
    if (logger.isDebugEnabled()) {
        logger.info("JK SSO Role Set in Session by AuthenticationSuccessHandler:"
                + userProfile.getUserRole());
    }

面对问题在第10行-(ENumGlobal.用户配置文件

public class UserProfile extends BaseBO {

String userName;
String userRole;

public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}

public String getUserRole() {
    return userRole;
}

public void setUserRole(String userRole) {
    this.userRole = userRole;
}

共有1个答案

裴楚青
2023-03-14

Web容器可能需要序列化会话内容。一个例子是,当您运行容器的几个实例时,将会话传输到另一台物理机器。

因此,放入会话的所有对象都应该是可序列化的(即实现接口java.io.serializable)。

错误消息已经给出了如何删除错误的提示:要么使对象可序列化,要么不将其存储在会话中。

 类似资料:
  • 问题内容: 我最近创建了一个新的Laravel项目,并遵循有关身份验证的指南。当我访问登录或注册路线时,出现以下错误: 我还没有编辑任何核心Laravel文件,我只创建了视图并将路由添加到了route.php文件中 我在Laravel上没有太多经验,所以请原谅我的无知。我知道还有另一个问题要问同样的事情,但似乎没有一个答案对我有用。谢谢阅读! 编辑: 这是我所要求的register.blade.p

  • 我试图在WAMP上升级Laravel 4.1应用程序到5.1,得到了这个错误: Request.php第775行中的运行时异常:会话存储未根据请求设置。 在D:\wamp\www\laravel-5.1\vendor\laravel\framework\src\light\Http\Request.php第775行中,应请求- 文件夹是可写的,使用的会话驱动程序是。我在整个项目中搜索,但找不到。我

  • 我在 Java 项目中使用 来签署一个 对象(在签名对象元素中)。然后,我需要序列化签名以将其存储在中。 XMLSignature不实现< code>Serializable。如何使XMLSignature可序列化以存储在Hazelcast中? 我在使用XMLSignature对象保存地图时遇到了这个Hazelcast异常: com.hazelcast.nio.serialization.Haze

  • 问题内容: 问题是,当我将序列化对象存储在.txt文件中时,它的格式不是可读的,并且包含一些随机的符号和字母。首先,我想知道其背后的原因是什么,然后如何解决此问题。 好了,这是我的代码:我要序列化的对象 序列化 } 反序列化 输出: 问题答案: 存储在文件中的序列化对象不可读 除了通过反序列化之外,它们并不可读。 问题是,当我将序列化对象存储在.txt文件中时,它的格式不是可读的,并且包含一些随机

  • sessionStorage 会话存储 存储针对QQ帐号隔离 数据存储于内存中,当前游戏结束后被清空 函数 key( index ) 获取对应索引的key 手q 版本7.8.5 参数 参数名 类型 说明 index number 索引值 返回值 类型 说明 string 说明 示例 var stringKey = BK.sessionStorage.key(0); getItem( key )