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

错误:由于不活动,您的会话已过期。ATG REST API会话确认号不匹配

华君浩
2023-03-14

我正在使用REST API开发ATG门户,所有的ATG API都是使用Postman测试的。当我开始在JS中工作时,它给出了一个错误。下面是测试代码:

http({
            method : "GET",
            url : "http://IP:PORT/rest/model/atg/rest/SessionConfirmationActor/getSessionConfirmationNumber"               
         }).then(function mySucces(response){
              // localStorage.setItem("getSessionConfirmationNumer", response.data.sessionConfirmationNumber);
              // localStorage.getItem("getSessionConfirmationNumer");   
            http({
                    method : "GET",
                    url : "http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login?_dynSessConf="+response.data.sessionConfirmationNumber+"&login=atgcust1&password=atgcust1",
                    // url : "http://IP:PORT/rest/model/atg/userprofiling/ProfileActor/login",
                    // data:formData
                 }).then(function mySucces(response){
                      console.log("done");
                 },function errorCallback(response) {
                    console.log(response);

                });
         });

控制台输出:

GET http://ip:port/rest/model/atg/userprofiling/profileactor/login?_dynsessconf=9030570900570011195&login=atgcust1&password=atgcust1 409(冲突)(匿名函数)@angular.js:10722p@angular.js:10515g@angular.js:10222(匿名函数)@angular.js:14745n.$eval@angular.js:15989n.$digest@angular.js:15800n.$apply@angular.js:16097(匿名函数)@angular.js

Object{Data:“您的会话因不活动而过期。”,Status:409,Config:Object,StatusText:“Conflict”}

会话确认号只能访问一次之后它会给出500个内部服务器错误(我写的这个逻辑不包括在这里),

当我手动从浏览器获取会话确认号并在代码中手动给出AS_DynsessConf值时,登录正在工作

请帮帮忙。

共有1个答案

方奕
2023-03-14

一些JSON库(如org.JSON)在解析大的long时存在问题。对于大的长值,它们会产生一个稍微不同的值,这正是我的代码所发生的,

SessionConfirmationNumber通过JSON返回的数据类型为Long,我得到的是舍入值,因为SessionConfirmationNumber很大。

我已经使用xmlHttp请求来解决这个问题。

var xmlHttp = new XMLHttpRequest();
        xmlHttp.open( "GET", "http://IP:PORT/rest/model/atg/rest/SessionConfirmationActor/getSessionConfirmationNumber", false ); 
        xmlHttp.send();
        console.log(xmlHttp.responseText);

感谢上帝:)

 类似资料:
  • 我在Tomcat7中有一个web应用程序,它将会话中的用户信息作为DTO对象保存。我还为我的项目启用了Spring Security性,如果用户没有会话,它会自动将用户重定向到登录页面。 如果我登录到应用程序一次,然后在Eclipse中重新启动Tomcat,会发生的情况是,我的会话被冲出,但cookie没有运行。 Edit:尽管Firefox说,但如果关闭并重新启动Firefox,cookie仍然

  • 我在应用程序中使用GreenDao。Proguard已启用调试生成。 添加数据绑定支持后,出现了以下问题: /app/src/main/java/com/example/MainApplication。java:29:错误:找不到符号 私人道会; 符号:class DaoSession位置:class主应用程序 同样的问题也会出现在道士身上。 此外,这个问题来了: 应用build.gradle:

  • 问题内容: 我的注册页面正确显示了表单,并且表单中存在CsrfToken()。 表格HTML 我正在为用户使用内置身份验证。除了路由和重定向外,没有任何更改。 当我提交表单时(也就是重新加载后),它表明 该页面由于不活动 而已 过期。 请刷新,然后重试。 错误。 我是我想念的东西很小。但不确定是什么。有什么帮助吗? 更新资料 找到了问题。会话驱动程序设置为数组。将其更改为文件,错误现在消失了。但是

  • 我在Spring Security中启用remember-me选项时出现了一个奇怪的错误。当会话过期时,我可以导航我的其余网页,但注销和其他POST方法在服务器中产生错误。它们不起作用,因为我的控制器重用了GET方法而不是post方法。我不明白为什么。 首先,我有一个Apache httpd服务作为代理使用ProxyPass配置。我将我的.war部署为root.war,因为我想访问我的域名www.

  • 我们的Java8和基于Spring的应用程序正在后台生成批量报告(PDF文件)。这可能需要一到两个小时以上。在生成每个报告后,UI(前端)中的进度(百分比值)已经更新,因此UI在完成报告生成之前一直处于活动状态,但由于某种原因,在报告生成过程的中间,我们在UI中从Vaadin框架获取会话过期消息。 Vaadin framework版本:7.6.2 Web服务器:Tomcat 7 心跳持续时间的值:

  • 问题内容: 我们的应用程序在30分钟后注销并重定向到登录页面,我在web.xml中指定会话超时,并使用requestProcessor进行重定向。我想向用户显示一条消息,指出会话过期后会话已过期,如何我可以这样做吗?自动注销?我想在“会话超时,请重新登录”页面上提示错误消息。那我怎么能检测到会话超时呢?有什么方法会自动触发吗? 问题答案: 创建一个活动检查器,该检查器每分钟检查是否发生了任何用户活