相关疑难解决方法(0)

使用j_security_check在Java EE/JSF中执行用户身份验证

我想知道当前的方法是关于使用JSF 2.0(如果存在任何组件)和Java EE 6核心机制(登录/检查权限/注销)的Web应用程序的用户身份验证,其中包含用户信息保存在JPA中实体.Oracle Java EE教程在这方面有点稀疏(仅处理servlet).

没有使用整个其他框架,如Spring-Security(acegi)或Seam,但如果可能的话,试图用新的Java EE 6平台(Web配置文件).

authentication jsf jaas j-security-check java-ee

155
推荐指数
3
解决办法
14万
查看次数

注销后阻止用户查看以前访问过的安全页面

我要求最终用户在注销/注销后不能返回受限页面.但目前最终用户可以通过浏览器后退按钮,访问浏览器历史记录或甚至通过在浏览器的地址栏中重新输入URL来实现.

基本上,我希望最终用户在注销后不能以任何方式访问受限制的页面.我怎样才能做到最好?我可以用JavaScript禁用后退按钮吗?

jsp servlets back-button logout browser-history

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

避免JSF Web应用程序上的后退按钮

我正在展示非常敏感的数据.用户从我的服务器注销后,我不希望其他用户能够看到数据点击浏览器的"后退"按钮.

我怎样才能做到这一点?

browser jsf back-button

46
推荐指数
2
解决办法
4万
查看次数

如何处理数据库中用户的身份验证/授权?

目前,我正在使用JSF 2.0,Tomcat 7和MongoDB开发一个Web项目.我有一个很大的问题,如何处理数据库中用户的会话管理和身份验证/授权.

我想要的结构如下:只有登录用户才能创建事件,每个人都可以看到创建的事件.

  • create.xhtml - >仅适用于已登录的用户.
  • events.xhtml - >为大家公开.

我计划的基本结构是:

  • 检查页面是否需要登录用户(例如create.xhtml)
  • 如果是,请检查用户是否已登录
  • 如果用户未登录,请转到 login.xhtml
  • 如果成功登录,请返回请求的页面
  • 除非用户单击"注销"按钮,否则请保留"用户已登录"信息.(我想@SessionScoped进入比赛)

问题是:

  1. 这种不那么复杂的方法是什么?
  2. 我应该在哪里使用@SessionScoped注释?在Create.javaLoginManager.java
  3. 对于我的问题,Spring安全性看起来很复杂,我真的需要它吗?如果是的话,你能解释一下实现如何与JSF 2.0和Mongo DB一起工作吗?

database authentication jsf authorization java-ee

28
推荐指数
1
解决办法
3万
查看次数

JSF HTTP会话登录

我尝试在Web应用程序中创建登录表单.在我可以使用的JSP页面中

<%
   String name = request.getParameter( "username" );
   session.setAttribute( "theName", name );
%>
Run Code Online (Sandbox Code Playgroud)

但现在我使用JSF/Facelets进行Web应用程序我不知道如何在JSF Backing bean中为客户端创建会话,并检查用户是否已登录,因此它将重定向到登录页面.谁能帮我提一下这些问题的链接教程?谢谢你

现在我没有遇到映射到类Filter的web.xml代码的问题

@Override
public void init(FilterConfig filterConfig) throws ServletException {
    this.config = filterConfig;
}

@Override
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;
    LoginController controller = (LoginController) req.getSession()
            .getAttribute("loginController");
    if (controller == null || !controller.isLoggedIn()) {
        res.sendRedirect("../admin/login.xhtml");
    } else {
        chain.doFilter(request, response);
    }
}
Run Code Online (Sandbox Code Playgroud)

并在web.xml我用<fitler>标签映射

<filter>
    <filter-name>userLoginFilter</filter-name> …
Run Code Online (Sandbox Code Playgroud)

jsf

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

使用JSF 2.0/Facelets,有没有办法将全局侦听器附加到所有AJAX调用?

有没有办法将全局侦听器附加到JSF中的所有AJAX调用?也许通过阶段听众或其他什么?

这是一个难题...让我们说你正在使用f:ajax标签和像apache shiro之类的东西,你让你的会话到期.然后你回来并点击一个附有f:ajax的按钮.服务器将以302重定向响应登录页面.

用户什么也看不见.他们可以反复点击并调用ajax调用,但对他们来说应用程序只是"死了".

所以,我的问题是,有没有办法将监听器附加到JSF中的所有ajax调用?如果是这样,我想做的是监控响应代码.如果是重定向,请使用window.navigate沿途发送它们.

我总是乐于听取其他人如何解决这个问题!

java ajax redirect listener jsf-2

11
推荐指数
1
解决办法
5004
查看次数

JSF ajax请求中的异常处理

在处理JSF ajax请求时抛出异常时,如何处理异常并访问堆栈跟踪?现在,当JSF项目阶段设置为Development时,我只在JavaScript警报中获取异常类名称和消息.更糟糕的是,当JSF项目阶段设置为Production时,没有任何视觉反馈,并且服务器日志不显示有关异常的任何信息.

如果这是相关的,我在Netbeans中使用GlassFish.

ajax jsf exception-handling jsf-2.2

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

用户登录后如何限制使用JSF 2访问某些页面?

我想根据用户访问权限限制对某些JSF页面的访问.如何在JSF中做到这一点?我找到了两个链接:通过直接更改JSF中的URL来限制用户访问页面.但答案没有提到如何阻止访问页面.用response.sendError?第二个链接:JSF:如何控制JSF中的访问权限和权限?

还有什么最好使用PhaseListener或使用ServletFilter?

security jsf-2

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

为什么FullAjaxExceptionHandler不是简单地执行ExternalContext#redirect()?

在OmniFaces中,FullAjaxExceptionHandler在找到要使用的正确错误页面之后,调用JSF运行时来构建视图并呈现它而不是包含AJAX调用的页面.

为什么这个?恕我直言,只是执行一个ExternalContext#redirect()?有没有具体的理由这样做?

我们正在编写基于FullAjaxExceptionHandler的自己的ExceptionHandler,并希望了解这种设计背后的原因.

ajax jsf redirect omnifaces exceptionhandler

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

GET请求重定向由浏览器启动但不成功

在尝试将用户重定向到URL时,它适用于GET请求,但不适用于回发请求.

通过firebug的网络窗口,我可以看到浏览器在回发请求(应该导致重定向)完成后收到的重定向响应.浏览器似乎启动了重定向URL的GET请求,但实际上并未成功重定向.它仍保留在同一页面上.

 我使用JSF服务器端.服务器根本不接收启动的GET请求.但是由浏览器根据服务器的需求发起.我想问题只是客户端的问题 

任何人都可以解释如何成功重定向工作?让我知道,我应该提供更多信息.

编辑:

请求标头重定向:

GET /Px10Application/welcome.xhtml HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20100101 Firefox/20.0
Accept: application/xml, text/xml, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://localhost:8080/Px10Application/channelPages.xhtml?channelId=-3412&type=Group
X-Requested-With: XMLHttpRequest
Faces-Request: partial/ajax
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Cookie: hb8=wq::db6a8873-f1dc-4dcc-a784-4514ee9ef83b; JSESSIONID=d40337b14ad665f4ec02f102bb41; oam.Flash.RENDERMAP.TOKEN=-1258fu7hp9
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)

重定向的响应标头:

HTTP/1.1 200 OK
X-Powered-By: Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1 Java/Sun Microsystems Inc./1.6)
Server: GlassFish Server Open Source Edition 3.1
Set-Cookie: oam.Flash.RENDERMAP.TOKEN=-1258fu7hp8; Path=/Px10Application
Pragma: no-cache
Cache-Control: no-cache …
Run Code Online (Sandbox Code Playgroud)

html ajax jsf redirect get

4
推荐指数
1
解决办法
1600
查看次数

FullAjaxExceptionHandler不会在ajax按钮上显示会话过期错误页面

我已经实现了Omnifaces FullAjaxExceptionHandler,但问题是它无法使用ajax请求.会话到期后,当我点击非ajax按钮时,它运作良好.它将用户重定向到自定义错误页面.但是如果按钮使用ajax,它什么都不做.页面只是卡住了.

编辑:我已将ActionListener更改为Action并仍然相同.

Edit2:它没有错误.既不是Apache Tomcat输出也不是Apache Tomcat Log.

在此输入图像描述

这是我的春天安全;

<http auto-config='true' use-expressions="true">
    <intercept-url pattern="/login" access="permitAll"/>
    <intercept-url pattern="/ajaxErrorPage" access="permitAll"/>
    <intercept-url pattern="/pages/*" access="hasRole('admin')" />
    <intercept-url pattern="/j_spring_security_check" access="permitAll"/>        
    <logout logout-success-url="/login.xhtml" />
    <form-login login-page="/login.xhtml"
                login-processing-url="/j_spring_security_check"                                                       
                default-target-url="/pages/index.xhtml"
                always-use-default-target="true"                                                        
                authentication-failure-url="/login.xhtml"/>
</http>
Run Code Online (Sandbox Code Playgroud)

jsf jsf-2 omnifaces

3
推荐指数
1
解决办法
2127
查看次数