标签: session-management

Java EE的自定义状态管理

我曾经使用过Java EE(现在是雅加达EE),因为它之前被称为"EE"(即servlet等),但我最后一次深入会话管理是在15年前.现在我们有了新的技术和趋势,例如HTML5 Web Storage APIJSON Web Token(JWT).虽然人们可以讨论JWT对会话跟踪的好处,但是使用sessionStorage.在单个选项卡中跟踪会话有一些有趣的好处.

所以只是为了让我加快速度:

  • 最新的Java EE技术(Java EE 8)是否仍限于用于会话跟踪的cookieURL重写,以及
  • 最新的Java EE API是否允许我提供自定义状态管理,例如覆盖容器如何查找状态(例如,如果我想存储状态标识符sessionStorage而不是cookie)?

我见过的所有讨论似乎围绕这个问题跳舞.如果有人可以指导我一些现有的文档,如果有的话,那也会有帮助.谢谢.

session session-storage session-management java-ee session-cookies

9
推荐指数
1
解决办法
111
查看次数

在iPhone上使用HTTP摘要式身份验证

我有一个应用程序与使用HTTP摘要身份验证的服务器通信.

在我看来,iPhone中的"会话"管理对于我们的开发人员来说是相当"黑盒子".是不是我们无法看到框架如何处理/持久化http会话?

如果我只是在这里昏暗,有人会解释如何在iPhone上处理HTTP摘要身份验证吗?

我的基本操作是:

  • 向安全网址发出请求
  • 服务器发送401
  • 客户端创建并保留凭证,并将其传递回服务器
  • 服务器验证凭证,验证完成请求,否则发送另一个401.
  • 发出后续请求以保护网址
  • 服务器再次请求授权........

这适用于单个请求,但如果我发出其他后续请求,则服务器再次请求授权.服务器已经为特定用户持久保存了会话,但是iPhone由于某种原因没有在同一会话中发出请求...因此,服务器必须抛弃认证对象并在每次客户端创建一个新对象向安全网址发出请求.

我确定这不是正确的行为.

如果我们看一下浏览器在这种情况下的行为:

  • 浏览器从安全URL请求数据
  • 服务器发送401
  • 浏览器提示用户输入凭据,持久保存,将其传递给服务器
  • 服务器验证凭证,如果验证则返回数据,否则发送另一个401.
  • 由于浏览器管理会话,因此不会提示对安全URL发出的后续请求提供凭据.

我正在创建NSURLCredential并将其保留在NSURLCrendtialStorage中.然后,当应用程序收到'didReceiveAuthenticationChallenge'时,我从存储中检索凭证并将其传回,如果不存在(在第一个请求中),则创建凭证.

任何帮助将不胜感激.谢谢.

iphone authentication session-management http-digest

7
推荐指数
1
解决办法
4906
查看次数

如何构建我的Perl CGI程序?

我们刚刚在CS课程中获得了第一个主要的Perl CGI作业.我们的任务是创建一个mp3共享站点,允许用户创建帐户,登录,共享mp3.必须显示当前用户的统计信息,可用的mp3等.必须将所有操作写入日志文件.我们的代码必须安全.

到目前为止,我已将这些操作分别实现为自己的CGI脚本.例如,我有一个脚本可以绘制登录表单,注册表单,允许mp3上传的脚本,以及另一个执行mp3服务的脚本.我还创建了一个模块,每当我调用它的实例时,它都会将相关信息发布到日志文件中.但是,每个脚本都是单独的,但登录屏幕除外,它会绘制一个表单,然后发布到login.cgi.帐户生成的工作原理相同.但是,在大多数情况下,每个人都独立行事.

我的问题:如何将这些链接在一起,以便除非用户登录,否则不允许任何操作?我假设我应该使用登录脚本(接收post动作的脚本)来驱动一切,但我该怎么做?我真的很茫然.我想有一个用户登录,主页是用选项绘制的(添加mp3,听mp3,显示统计等).我最好是绘制某种形式并将动作设置为不同的脚本吗?如何处理这些脚本的返回?饼干会以某种方式帮助吗?

其他相关信息:到目前为止,我使用本网站上的ovid教程和Lincoln Stein的书完成了CGI.pm的大部分工作.

perl cgi session-management

7
推荐指数
2
解决办法
445
查看次数

使用OpenID进行身份验证后在REST应用程序中管理会话

我正在构建一个RESTful应用程序.我计划使用OpenID进行用户身份验证.目前,我使用LightOpenID进行OpenID身份验证,我可以对我的用户进行身份验证.

我的问题是下一步什么?认证后!

  1. 因为,它是一个REST应用程序,我将不得不使用Cookie进行会话管理..对吗?
  2. 我在Cookies中存储了什么值?
  3. 如何验证会话和用户注销?

我确实搜索了有关实现的示例,但所有示例都停止了身份验证,并且没有谈论会话管理!我想知道您如何管理应用程序中的会话,以及在实施方法时可能的最佳实践和关注点.

如果您了解任何参考实施,请提供链接.

php openid session session-management lightopenid

7
推荐指数
1
解决办法
4878
查看次数

是否可以在ColdFusion中过期或删除特定会话,而不是针对该请求的会话?

重要提示:我并不是说结束与当前请求相关的会话.我的意思是,给定一些标识符,是否可以清除该会话?

我想实现单点注销.作为其中的一部分,如果在注销时,我可以使用单点登录向每个ColdFusion应用程序发送POST请求,告诉他们清除该记录的现有会话.

这些是我想到的替代技术:

  • 将某些内容存储在与会话变量对应的表中,并将其删除.每次加载页面时,都必须检查表格中是否有活动记录
  • 创建服务器范围的结构,其中会话ID是密钥.注销后,第一个获取注销请求的ColdFusion应用程序将从结构中删除该键

但是,为了避免添加额外的复杂层,如果我可以直接删除该特定会话,那就更好了.这样我知道它已经消失了,不必担心在每个请求上运行额外的代码.

coldfusion session session-variables session-management

7
推荐指数
1
解决办法
319
查看次数

Windows身份验证的会话管理

在ASP.NET Web应用程序中,使用集成Windows身份验证,会话是否与Windows身份相关联?
换句话说,如果我登录(使用IWA)到应用程序,并且应用程序在我的会话中存储了一些"东西",这个东西是否仅由会话ID访问?例如,如果恶意某人设法窃取我的会话ID,但不是我的凭据,那么他可以访问我的会话内容吗?或者是这个会话只能访问相同的身份,要求两者的会话ID和窗户的身份来访问它?

asp.net iis windows-authentication session-management session-hijacking

6
推荐指数
1
解决办法
3341
查看次数

适用于Google App Engine:它稳定吗?tipfy的auth/session组件可以与webapp一起使用吗?

我正在Google App Engine上构建一个Web应用程序,要求用户注册该应用程序,然后对其进行身份验证并维护会话.我不想强迫用户拥有Google帐户.此外,应用程序的目标受众是普通的非极客,所以我不太热衷于使用OpenID或OAuth.我需要一些简单的东西:用户使用电子邮件和密码注册,然后可以使用这些凭据重新登录.我知道这种方法不能提供Google或OpenID身份验证的安全优势,但我准备为最终用户提供便利和无障碍体验的万无一失的安全性.

我探讨了Django,但我认为从appengine-helper到app-engine-patch到django-nonrel的连续弃用可能表明这条路径在长期内可能有点冒险.我想使用可能一致维护的代码库.我还探讨了诸如gaeutilities和suas之类的独立会话/身份验证包.GAEUtilities看起来有点不成熟(例如,代码在某些地方并不是pythonic,在我看来)并且SUAS并没有给我很多安慰只有cookie的会话.我对这两个人的评估可能是错的,所以我希望对那些(或其他可能符合我的目标的人)提出意见.

最后,我最近遇到了小费.它似乎是基于Werkzeug和Alex Martelli 在stackoverflow上高度评价它.我有两个与tipfy相关的主要问题:

  1. 作为一个框架,它是否像webapp一样成熟?它是否稳定并且可能维持一段时间?
  2. 由于我的主要兴趣是auth/session组件,tipfy框架的那些组件是否可以与webapp一起使用,独立于更广泛的tipfy框架?如果是的话,我会对如何做到这一点表示赞赏.

authentication google-app-engine web-applications session-management

6
推荐指数
1
解决办法
1181
查看次数

使用Ehcache的WebApp会话管理

在我的项目中,我使用ehcache存储登录的用户详细信息和一些其他信息(哪个应用程序将在运行时使用它而不是从db获取).以下是我的ehcache配置:

<cache 
    name="normalCache"
    maxElementsInMemory="50000" 
    eternal="false"
    timeToIdleSeconds="1800" 
    timeToLiveSeconds="0"
    overflowToDisk="false"
    memoryStoreEvictionPolicy="LRU"
/>
Run Code Online (Sandbox Code Playgroud)

但问题是会话超时发生的大部分时间(即使用户不是非活动状态> 30).有时会发生10分钟,......

所有操作都将尝试从ehcache的每个请求中检索用户对象.

我不确定ehcache将如何确定到期时间.

java session web-applications ehcache session-management

6
推荐指数
2
解决办法
3687
查看次数

如何在grails Web应用程序中使用shiro本机会话?

目前,我在控制器和gsp页面中使用默认的HttpSession对象:

在控制器中:

...
session.mykey = anObject;  // adding an object to session
...
if (session.otherkey) {    // performing some checking
Run Code Online (Sandbox Code Playgroud)

在GSP中:

...
<g:if test="${session.mykey}">
...
Run Code Online (Sandbox Code Playgroud)

我想要一个"记住我"的功能.Shiro已经内置了.但是,据我所知,为了做到这一点,我必须使用shiro本地会话模式(在Config.groovy:security.shiro.session.mode ="native").默认情况下,它会持久保存会话状态,因此只要Cookie过期或用户注销,对象就会保留在会话中.

我的理解是对的吗?

然后我将不得不将我的控制器更改为:

def shiroSession = SecurityUtils.subject.session
shiroSession.setAttribute("mykey",anObject)
....
if (shiroSession.getAttribute("otherkey") ){
Run Code Online (Sandbox Code Playgroud)

我对此的看法:

<g:if test="${SecurityUtils.subject.session.getAttribute('mykey')}">
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:

  • 是对的吗?
  • 我不能只使用以前的方式来访问会话吗?
  • 我是否必须在某些配置中关闭默认的http会话?

grails session-management shiro

6
推荐指数
1
解决办法
1178
查看次数

将会话管理集中到其他Springboot应用程序

我有一些Spring Boot,Spring Security,Spring Sessions和Spring Redis的应用程序.

我的一个应用程序(我将其称为"权限")负责为我的所有其他应用程序提供登录服务.这已经很好了.

现在,我想使用Permissions来管理所有其他应用程序的会话(例如创建,删除,获取和保存会话).权限将在Redis中持续存在.

权限本身是一个用于管理登录和会话的应用程序,一切正常(Redis上的登录和会话持久性).

要管理会话,我需要在权限中提供服务并在其他应用程序中使用此服务,但我没有ideia在两个应用程序中必须覆盖的会话过滤器或实现才能使此功能正常工作.

任何人都有一个想法来集中会话管理并应用新规则,如无效或在与所有其他系统的唯一点创建新会话?

java session session-management spring-boot spring-session

6
推荐指数
1
解决办法
175
查看次数