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

OpenID+JSF将用户重定向到他登录的页面?

王辉
2023-03-14

我将OpenId4Java与JSF应用程序一起使用,我在web.xml中添加了安全约束,如下所示。

<security-constraint>
     <web-resource-collection>
       <web-resource-name>Restricted</web-resource-name>
       <url-pattern>/core/*</url-pattern>
       <http-method>GET</http-method>
       <http-method>POST</http-method>
     </web-resource-collection>
</security-constraint>
<login-config>
  <auth-method>FORM</auth-method>
  <form-login-config>
    <form-login-page>/user/login.xhtml</form-login-page>
    <form-error-page>/user/logout.xhtml</form-error-page>
  </form-login-config>
</login-config>

现在,当应用程序启动并且用户希望访问

http://www.somehost:8080/myapp/core/abc.xhtml

在web.xml的帮助下,我可以向用户显示一个登录页面,现在这里我用openid登录,就像Google、Yahoo现在我的问题是,我如何告诉openid我的返回url是

http://www.somehost:8080/myapp/core/abc.xhtml

或者如果用户来自

http://www.somehost:8080/myapp/core/xyz.xhtml

此url则在用户登录成功后会转到此页面。

共有1个答案

凌经赋
2023-03-14

为了获得用户试图访问的原始url,请尝试使用变量requestdispatcher.forward_request_uri。

只有当您从某个其他受限页面重定向到登录页面时,此变量才可用。所以,请记住有一些默认的url,以防用户直接点击登录页面。

正如rrufai所指出的,一旦用户请求的原始url可用,您就可以按照本文中提到的步骤重定向到该url(当身份验证完成时)。

 类似资料:
  • 问题内容: 默认情况下,登录后django将用户重定向到帐户/个人资料页面,或者,如果你编辑LOGIN_REDIRECT_URL,则可以将用户重定向到你在settings.py中指定的另一页面。 很棒,但是我希望用户(登录后)被重定向到自定义页面,该页面的链接看起来像这样:。因此,在这种情况下,默认帐户/配置文件或设置将不起作用,因为两者都是静态的。就我而言,地址部分针对每个用户而变化。 任何想法

  • 问题内容: 我试图制作一个过滤器来阻止未登录的用户访问某些页面。为此,我使用以下方法制作了一个过滤器类 为了允许不需要用户登录的页面,我在init()中创建了一个arraylist url-list。 现在发生了一件非常奇怪的愚蠢的事情。假设我有两个页面home.jsp和dcr.jsp。当我尝试不登录而访问home.jsp时,我已成功重定向至login.jsp,但是当我尝试访问dcr.jsp时,尽

  • 问题内容: 我想设置我的网站,以便如果用户点击该页面并且他们已经登录,它将把他们重定向到主页。如果未登录,它将正常显示。由于登录代码内置在Django中,我该怎么做? 问题答案: 我假设你当前正在使用内置的登录视图, 或你网址中的类似内容。 你可以编写包含默认视图的登录视图。它将检查用户是否已经登录,如果已经登录则重定向,否则使用默认视图。 就像是: 当然可以相应地更改你的网址:

  • 我想在登录后将用户重定向到同一页面。该场景是,如果用户未登录,将重定向到登录页面。在登录页面上,当他单击一个可用的用户选项时,我想存储用户id,然后将他重定向回他来自的同一页面。为此,我使用以下代码: 在应用程序中提供帮助。rb: 在SigninController中: 在登录/索引页中:

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano

  • 我正在我是身份提供者的地方实施SSO,现在我能够成功登录到服务提供者。但它把我带到了主页。我想在发布响应时指定着陆页URL。搜索了很多,但找不到任何令人信服的东西。不太知道SAML响应的哪个元素携带着陆页URL或采用我必须指定的形式。使用java和opensaml库生成响应。