我有一个基于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) 我有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编写而不是合并,所以我真的需要这个来处理现有的代码.
有人可以帮忙吗?
我有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.
我只希望能够设置一次.
有人能帮忙吗?