Tag: session

没有cookie的Servlet会话+仅返回JSON的ajax请求

这是我的情况,我有一个网站,我只是使用Apache HTTPD加载,然后向一个只返回JSON数据的servlet发出Ajax POST请求。 然后,该JSON数据用于更新表等。 现在我想向我的站点添加用户逻辑,并且还为各个用户的请求维护servlet会话。 我知道servlet需要返回第一次调用request.getSession()时生成的会话ID,以便客户端可以将此sessionid添加到将来的Ajax请求中,以便servlet知道要在内存中使用哪个会话。 我也理解这个会话id可以返回给客户端的两种方式是使用cookie(JESSIONID)或URL重写。 如果我不能使用URL重写,因为我只是返回JSON数据,cookie是我离开的唯一方式将会话ID发送回客户端吗? 另外,作为一个附带问题,目前我注意到来自servlet的任何HTTP响应中都没有JSESSIONID cookie。 有人向我建议这是Tomcat7中的新function,我必须在全局context.xml中激活它们。 这是否意味着即使您调用request.getSession(),默认情况下也没有会话处理?

是否有关于servlet的会话完整性的正式定义?

这个问题与另一个现有的SO问题有关 。 HttpServletRequest的getSession(boolean)方法提到会话完整性,但它没有定义概念。 我找不到一个正式的定义。 有没有? 有没有人知道会话进入或退出完整性时正式定义的规则? 谢谢。

带有 / 和JSESSIONID的cookie

我正在尝试在我的应用程序的web.xml中设置cookie路径(如此处所示 ): / 因此,我将两个相同的Web应用程序部署到localhost:8080/application-a和localhost:8080/application-b 。 每个应用程序都是一个servlet: public class ControllerServlet extends HttpServlet{ @Override public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(false); if (session == null) { session = req.getSession(true); System.out.printf(“No session was present – new one created with JSESSIONID=[%s]\n”, session.getId()); } else { System.out.printf(“JSESSIONID cookie was present and HttpSession objects […]

SWFUpload和Java:会话丢失

我正在使用SWFUpload将文件上传到java servlet(spring框架)。 问题是当前Web会话在文件上载期间丢失(它创建一个新会话)。 我读到这是一个已知的bug,并且在某处有一些解决方法,但我找不到任何东西。 有谁知道如何使它工作? 谢谢。

Spring安全删除用户 – 会话仍处于活动状态

我有一个简单的Spring安全应用程序和用户管理。 管理员应该能够在数据库上创建/更新/删除用户(通过hibernate)。 如果用户已更新,我正在重新加载当前登录的用户的身份validation。这是通过以下代码完成的(根据此示例): SecurityContextHolder.getContext().setAuthentication(updatedAuthentication); 我的问题是: 如果删除用户该怎么办? 如果我删除了一个用户,那么已经活动的会话仍处于活动状态 ,我不知道如何更新它们。 我仍然可以导航到我以前能够访问的每个页面。 有没有办法告诉spring会话应该重新validation还是类似的? 我错过了什么重要的事吗?

用于Spring Security和/或Spring BlazeDS集成的会话管理(和查杀)的集中系统

我很难实现客户要求的function。 简而言之,他们希望能够通过管理员方面退出他们选择的任何客户。 该应用程序使用Flex作为前端技术并通过AMF访问服务器。 服务器端使用Spring Security和Spring BlazeDS Integration。 基本上问题是:Spring Security和/或Spring BlazeDS Integration是否为开箱即用的会话管理(和查杀)提供了任何集中式系统? 出于概念validation的目的,我尝试注销所有用户并使用以下代码终止所有会话: package xxx.xxx.xxx; import java.util.List; import org.apache.commons.lang.builder.ReflectionToStringBuilder; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.session.SessionInformation; import org.springframework.security.core.session.SessionRegistry; import org.springframework.security.core.userdetails.User; import flex.messaging.MessageBroker; import flex.messaging.security.LoginCommand; public class SessionServiceImpl { private static final Log log = LogFactory.getLog(SessionServiceImpl.class); private SessionRegistry sessionRegistry; private MessageBroker messageBroker; public SessionRegistry […]

如何在Web服务上工作时获取会话对象?

如何在Web服务上工作时获取会话对象? 服务在两个程序之间调用。 如何使用webservices处理用户会话对象。 使用请求对象无法获取会话,因为在讨论服务时不会有请求或响应。

Spring java.lang.IllegalStateException:在提交响应后无法创建会话

我在我的spring应用程序中遇到会话管理问题,这是方案。 当用户打开我的应用程序URL时,它会要求提供凭据并登录。用户进入后,如果他打开一个新选项卡并粘贴我的应用程序URL,它将再次请求凭据并且用户登录。 现在,如果用户在tab1中注销,并且如果用户想要在第二个选项卡中执行任何操作,则用户会在下面的堆栈跟踪中收到错误并注销。 Oct 10, 2014 3:11:27 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [CollPortal] in context with path [/CollPortal] threw exception java.lang.IllegalStateException: Cannot create a session after the response has been committed at org.apache.catalina.connector.Request.doGetSession(Request.java:2886) at org.apache.catalina.connector.Request.getSession(Request.java:2316) at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:898) at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:910) at com.dc.core.common.FlashRecyclingFilter.doFilterInternal(FlashRecyclingFilter.java:22) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at com.dc.core.common.StripJSessionIdFilter.doFilter(StripJSessionIdFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) […]

Spring中会话过期的监听器

我是Spring的新手,并将其用于身份validation。 我遇到一个问题,当浏览器关闭或者在任何exception失败的情况下会话到期但我无法捕获事件以便执行清理代码。 我探索它并在Spring中发现HttpSessionEventPublisher在sessionDestroyed()方法中捕获HttpSessionDestroyedEvent ,但是当我关闭浏览器时不会调用它。 请求建议相同的解决方案。

会话属性访问并转换为int?

我在Servlet中使用以下命令在Session中存储了用户ID: HttpSession session = request.getSession(); session.setAttribute(“user”, user.getId()); 现在,我想从另一个Servlet访问该用户ID: HttpSession session = request.getSession(false); int userid = (int) session.getAttribute(“user”); // This is not working OR User user = new User(); user.setId(session.getAttribute(“user”)); This ain’t possible (Object != int) 题: 如何转换为int并将id发送到DAO以获取SELECT语句