小编cho*_*o70的帖子

JSF2异常处理

在JSF2 webapp中处理"未经检查"的异常的最佳方法是什么?

目前,我让它们流到servlet容器,然后我(通过web.xml文件)重定向到显示友好消息和异常信息的jsp错误页面.

使用"自定义异常处理程序"处理它们会更好(就像Ed Burns在"JSF 2.0 - 完整参考"一书中所说的那样).

在这两种情况下("web.xml"或"异常处理程序"):我是否必须重定向到jsp页面而不是facelet页面?(因为异常可能是由jsf问题本身引起的,并且可能导致循环).或者我可以重定向到facelet页面吗?重定向到jsp页面的缺点是必须配置jsf应用程序以接纳jsp和facelets(只有facelet页面会更"干净").

最后,另一个问题:"自定义异常处理程序"也处理"已检查"异常?目前,我在托管bean中处理它们(捕获它们并在应用程序页面中显示facesmessage).

jsf exception-handling jsf-2

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

春季安全会话超时

我在JSF2 webapp中使用Spring Security 3.

我有一个安全规则来提供会话超时:

<session-management invalid-session-url="/faces/paginas/autenticacion/login.xhtml?error=1" />
Run Code Online (Sandbox Code Playgroud)

因此,当会话过期并且用户单击任何链接时,他将被重定向到登录页面.在此页面中,我检查错误参数,并向用户显示一条消息,说明会话已过期.

但我有两个问题:

(1)当我第一次启动应用程序(它试图显示主页)时,我被重定向到登录页面,说会话已经过期.我认为这可能会发生,因为第一次运行应用程序时,会话是新的,Spring Security可能"认为"他已经过期(不区分新会话和超时).

(2)如果匿名用户的会话已过期(尚未通过身份验证),我也会被重定向到登录页面超时.对于未经身份验证的用户,我不希望出现此行为,我只想查看经过身份验证的用户的超时.

我怎样才能解决这两个问题呢?

先感谢您.

session timeout spring-security

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

JSF数据表:添加和删除行清除行值

我有啊:数据表显示行列表,每行的字段是输入字段.

我在表格前面渲染一个"添加行"按钮,在表格的每一行上都有一个"删除行"按钮.

烘焙bean是viewScoped,按钮添加/删除辅助bean中java列表中的元素,然后返回到同一视图.

我在按钮中将immediate属性设置为"true",以便在添加或删除行时不验证输入字段.

一切正常但只有一件事:输入文件的值被清除.我认为视图保持值,因为bean是viewScoped.

如何在不触发验证的情况下实现添加/删除行,并保留用户在表单中键入的值?

我的看法:

<h:form>
    <h:commandButton value="Añadir Fila" immediate="true" action="#{tablaController.addRowAction}" />
    <h:dataTable value="#{tablaController.lista}" var="fila" cellpadding="0" cellspacing="0" border="1">
        <f:facet name="header">TABLA</f:facet>
        <h:column>
             <f:facet name="header"><h:outputLabel value="NOMBRE" /></f:facet>
             <h:inputText id="nom" value="#{fila.nombre}" />
             <h:message for="nom" class="msjError" />
        </h:column>
        <h:column>
            <f:facet name="header"></f:facet>
            <h:commandButton value="Quitar Fila" immediate="true" action="#{tablaController.removeRowAction(fila)}" />
        </h:column>
    </h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)

我的支持豆:

@ManagedBean(name="tablaController")
@ViewScoped
public class TablaController {

private List<Fila> lista;
...
public TablaController() { }
...
@PostConstruct
public void init() {
    this.lista = new ArrayList<Fila>();
    for (int i=0; i<5; i++) {
        Fila …
Run Code Online (Sandbox Code Playgroud)

datatable jsf add immediate-attribute

5
推荐指数
1
解决办法
6705
查看次数

jsf spring security登录错误消息

我在我的jsf2网络应用程序中使用spring security 3.

如何在登录表单中显示错误的凭据消息,而不将get param?login_error附加到authenticated-fail-login-page?

我尝试过使用像本教程这样的阶段监听器:

http://tutorials.slackspace.de/tutorial/Custom-login-page-with-JSF-and-Spring-Security-3

但它不起作用.

没有preRenderView监听器.

并且既不检查弹簧安全性最后一个异常以呈现消息.

有任何想法吗?

更新:

我的登录页面:

<f:metadata>
<f:viewParam name="error" value="#{autenticacionController.error}" />
<f:event listener="#{autenticacionController.comprobarAuthException}" type="preRenderView" />
</f:metadata>
<h:messages globalOnly="true" layout="table" />
<h:form id="formLogin" prependId="false">
<h:outputLabel for="j_username" value="Usuario:" />
<h:inputText id="j_username" value="#{autenticacionController.administrador.login}" />
<h:outputLabel for="j_password" value="Contraseña:" />
<h:inputSecret id="j_password" value="#{autenticacionController.administrador.password}" />
<h:commandButton value="Entrar" action="#{autenticacionController.loginAction}" />
<h:commandButton value="Cancelar" immediate="true" action="#{autenticacionController.cancelarAction}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)

我的托管bean:

@ManagedBean(name="autenticacionController")
@RequestScoped
public class AutenticacionController extends BaseController {

    //entidad "administrador" contra el que validar los campos del form login
    private Administrador administrador = …
Run Code Online (Sandbox Code Playgroud)

jsf message login spring-security

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

spring security custom sessionmanagementfilter相同的订单值错误

我正在尝试自定义Spring Security的会话管理过滤器,但是我得到的错误是我的过滤器和默认过滤器具有相同的'order'值(虽然<session-managent>我的<http>配置中没有任何内容,但我有autoconfig =是的,正如Spring Security在其文档中所说的那样).

这是我的Spring Security配置:

<http auto-config="false" use-expressions="true">

    <custom-filter position="SESSION_MANAGEMENT_FILTER" ref="filtroGestionSesion" />

    <intercept-url pattern="/resources/**" filters="none"/>
    <intercept-url pattern="/faces/javax.faces.resource/**" filters="none"/>
    <intercept-url pattern="/faces/inicio.xhtml" access="permitAll"/>
    <intercept-url pattern="/faces/paginas/autenticacion/login.xhtml*" access="permitAll"/>
    <intercept-url pattern="/faces/paginas/administracion/**" access="isAuthenticated()"/>
    <intercept-url pattern="/faces/paginas/barco/**" access="isAuthenticated()"/>
    <intercept-url pattern="/faces/paginas/catalogo/**" access="permitAll"/>
    <intercept-url pattern="/faces/paginas/error/**" access="permitAll"/>
    <intercept-url pattern="/faces/paginas/plantillas/**" access="permitAll"/>
    <intercept-url pattern="/**" access="denyAll" />

    <form-login login-processing-url="/j_spring_security_check"
                login-page="/faces/paginas/autenticacion/login.xhtml"
                default-target-url="/faces/paginas/administracion/inicioAdmon.xhtml"
                always-use-default-target="true"
                authentication-failure-url="/faces/paginas/autenticacion/login.xhtml?error=authentication" />

    <logout logout-url="/j_spring_security_logout"
            logout-success-url="/faces/inicio.xhtml"
            invalidate-session="true" />
</http>

<global-method-security pre-post-annotations="enabled" />

<authentication-manager>
    <authentication-provider>
      <user-service>
        <user name="myuser" password="myuser" authorities="" />
      </user-service>
    </authentication-provider>
</authentication-manager>

<beans:bean id="filtroGestionSesion" class="springSecurity.FiltroGestionSesion">
    <beans:constructor-arg ref="securityContextRepository" …
Run Code Online (Sandbox Code Playgroud)

security session spring filter

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

领域驱动设计可以是用例驱动的吗?

也许这个问题是矛盾的,但在 DDD 中从用例开始开发,然后开发支持这些服务的领域模型是否正确?

如果设计是由领域驱动的(如 DDD 所说),那么假设您首先开发领域模型(通过理解问题领域并使用泛在语言),然后开发应用层(用例)使用域。

然而,在 DDD 中,您似乎首先从用例(或用户故事)开始,然后开发域模型。

domain-driven-design process use-case

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