我注意到grails应用程序,就像大多数其他基于Java的Web应用程序一样,总是会创建一个会话,即使它没有被使用.
是否可以仅在需要时设置JSESSIONID cookie,例如.当有人试图登录?
我想在java中构建一个api来解决在将一个页面移动到任何网站中的另一个页面时发生的安全图像问题.如何获取会话ID和cookie,以便我可以使用安全图像字符串发布它.
谢谢
出于某种原因;jsessionid=SESSION_HERE,当我访问部署到GAE devserver的应用程序时,字符串会被添加到网址中.
这会让事情变得混乱,因为对于某些网址来说,根本无法将其解析为GET参数(有时它最终会像网址一样http://localhost:8080/someurl;jsessionid=0000).
我的webapp配置是微不足道的,我使用maven并appengine-maven-plugin像这样运行devserver:
mvn appengine:devserver
Run Code Online (Sandbox Code Playgroud)
这是什么原因以及如何删除?
在Tomcat中,我们可以这样做:
<Context useHttpOnly="true" sessionCookiePath="/"sessionCookieDomain=".XXXX.com"/>
Run Code Online (Sandbox Code Playgroud)
我想用Spring Boot分享二级域名的cookie,怎么做?
最近,我们将应用服务器从JBoss EAP6.2升级到EAP7.0.
即使它运行非HA配置文件standalone.xml,JBoss 也会jboss.node.name在JSESSIONIDcookie 结束时添加.
例如,
春天引导产生JSESSIONID的tHSf9v23SSDBMqJ1O7XFJZ9....,当请求到达浏览器时,cookie成为tHSf9v23SSDBMqJ1O7XFJZ9.master:<jboss.node.name>导致一些兼容性问题.
我通过手动调用进行了一些实验response.addCookie.在这种情况下,它不会master为cookie 添加后缀.但是,如果Spring自己编写cookie,那么JBoss似乎会选择它并添加master后缀.我知道这个案子可能有点混乱(对我而言),我很乐意提供更多信息.
在为网站实现"记住我"功能的同时,为什么我们使事情变得复杂并且在会话令牌之外有一个名为mem me token的令牌.
据我所知,记住我可以使用令牌登录并创建一个新的会话令牌,而会话令牌只持续几分钟或直到用户关闭浏览器.为什么我们不能将会话令牌本身的到期持续时间增加到我们希望用户登录的所需时间?
我需要在运行tomcat的基于flex的应用程序中实现这样的功能,我想知道需要记住我的令牌
此外,是否有可能在tomcat中开箱即用?
我正在寻找一个简单的英语,"for dummies"解释JSESSIONID如何从安全方面工作
这个问题让我感到疯狂,所以也许有人可以帮我理解问题所在.我有一个tomcat web应用程序正面向HAProxy.HAProxy也在进行SSL卸载,并配置为使用粘性会话.我正在使用Tomcat的会话复制功能,这似乎工作正常.会话出现在两个appservers上.
出于某种原因,Tomcat为每个Web请求生成一个新的JSESSIONID,然后将旧会话的内容复制到新会话中.也就是说,我的会话内容仍在新会话中,但会生成新ID并将其发送回客户端.但它只对我的Web应用程序执行此操作.它不会对/ manager应用程序执行此操作.
我已经尝试了本书中的每一个技巧,比如在我的context.xml中设置它:
<Valve className="org.apache.catalina.authenticator.BasicAuthenticator" changeSessionIdOnAuthentication="false" />
Run Code Online (Sandbox Code Playgroud)
并在我的Context元素上设置这些属性:
<Context path="/myapp" reloadable="false" override="true" useNaming="false" allowLinking="true" useHttpOnly="false" sessionCookiePath="/" sessionCookiePathUsesTrailingSlash="false">
Run Code Online (Sandbox Code Playgroud)
而且,结果仍然是一样的.Tomcat为每个请求生成一个新的会话ID,并将旧会话的内容复制到新的id中.
我怀疑它与HAProxy有关,除了/ manager应用程序也在HAProxy后面,它没有表现出这种行为.
为什么Tomcat这样做,我该怎么做才能阻止它呢?
我有两个应用程序 - 一个Java EE Web应用程序和一个Java SE applet.我想通过JSESSIONID(由Web应用程序创建)在applet中验证用户.
所以有一个问题 - 如何将这个JSESSIONID与特定用户相关联?
如何检查(在Web服务器应用程序端)哪个用户由这样的JSESSIONID表示?在applet中,我将从cookie中读取它,然后我想编写一个简单的Servlet,它将接受此JSESSIONID作为POST消息.此后,当JSESSIONID不好时,我想在响应中写任何内容,如果JSESSIONID是好的(即代表某人),则用户信息.
有谁知道如何做到这一点?
我无法理解发生了什么.在其中一个环境.我的webapp(使用ExtJS 4.0编写) - 我看到登录请求成功完成但随后的请求失败了401.
当我在浏览器(F12)中发现更多时,第一个请求的响应头具有JSESSIONID,它被设置为cookie,但第二个请求不会在其请求头中发送它.这就是为什么第二个请求创建一个新会话并返回一个新的JSESSIONID.
在发送请求的客户端代码中,
Ext.Ajax.request({url:'', callback..})- 没有明确设置JSessionId或任何cookie.
奇怪的部分并非所有cookie密钥都缺失,只有JSESSIONID,这意味着cookie不会被浏览器禁用和设置.
为什么浏览器不发送JSESSIONID?我在firefox/chrome中试过这个.
这也只发生在我当地的环境,QA环境中.的webapp工作正常.
jsessionid ×10
java ×6
java-ee ×2
jsp ×2
session ×2
spring-boot ×2
tomcat ×2
apache-flex ×1
applet ×1
cookies ×1
devserver ×1
grails ×1
haproxy ×1
jboss ×1
remember-me ×1
security ×1
servlets ×1
wildfly ×1