小编bab*_*abb的帖子

Spring Security 3.1 - 发生会话超时时自动重定向到登录页面

我有一个基于Spring的wenb应用程序,我正在实现Spring Security 3.1.

我需要的是能够在配置的会话超时发生时自动重定向到登录页面.我正在实现包含大量jQuery功能的网页,所以我需要能够自动重定向.

当前发生的事情,当会话超时通过时,直到执行操作 - 页面提交才重定向到登录页面.

我的spring-security.xml:

<http auto-config="true" disable-url-rewriting="true">
    <intercept-url pattern="/test/user*" access="ROLE_USER, ROLE_ADMIN"  />
    <intercept-url pattern="/test/admin" access="ROLE_ADMIN"  />
    <form-login login-page="/test/login" 
            default-target-url="/test/home" 
            authentication-failure-url="/test/loginfailed" />
    <logout invalidate-session="true" logout-success-url="/test/logout" />
    <!--
    <session-management invalid-session-url="/test/login">
        <concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
    </session-management>
    -->
</http> 
Run Code Online (Sandbox Code Playgroud)

在我的web.xml中,我有:

<!-- Web Session Timeout (mins) --> 
<session-config> 
    <session-timeout>10</session-timeout> 
</session-config>   
Run Code Online (Sandbox Code Playgroud)

html security jquery spring spring-security

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

Hibernate Envers - 不为createQuery(...).executeUpdate()编写审计记录,只编写.persist()和.merge()

我有3种方法可以写入数据库

public void create(T object) {
    entityManager.persist(object);
}

public void update(T object) {
    object = entityManager.merge(object);
}

public int updateStatus(String id, String status) {

    final int changes =
                entityManager.createQuery("update item set state = :newState," +
                        " last_modified = current_timestamp" +
                        " where id = : id ")
                    .setParameter("newState", status)
                    .setParameter("id", id)
                    .executeUpdate();

            return changes;
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是为了让Hibernate Envers实际将审计记录写入相应的x_aud和revinfo数据库表.它只适用于'.persist()'或'.merge()'.我不能让它为'createQuery(...). executeUpdate() '工作

我是否遗漏了某些东西,或者只是为此而努力.问题是,我的很多代码都使用.executeUpdate编写而不是合并,所以我真的需要这个来处理现有的代码.

有人可以帮忙吗?

java jboss spring hibernate hibernate-envers

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

Java - 通过setter方法设置一个对象变量,但我不希望能够再次更改它

我有Spring Web Services项目,我可以访问登录的用户名.

然后进程通过几个类进行,但我想要做的是,当我第一次在第一个类中接收它时,在User类/ bean中设置用户名.

即以下内容:

我的第一个Web服务类:

    // Set the Spring Security Name of the user
    user.setSpringSecurityUsername(request.getUserId());
    String springSecurityUsername = user.getSpringSecurityUsername();
Run Code Online (Sandbox Code Playgroud)

我的用户类

private String springSecurityUsername = "";
private final String windowsUsername = System.getProperty("user.name");

public String getSpringSecurityUsername() {
    return springSecurityUsername;
}

public void setSpringSecurityUsername(String springSecurityUsername) {
    this.springSecurityUsername = springSecurityUsername;
}

public String getWindowsUsername() {
    return windowsUsername;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够创建User bean的新实例并设置SpringSecurityUsername.然后我希望将用户对象传递给其他处理类,但我不知道他们可以访问用户中的setter方法(例如,不希望其他类能够使用.setSpringSecurityUsername.

我只希望能够设置一次.

有人能帮忙吗?

java spring web-services

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