我有一个非常基本的Spring Security设置使用session。我的问题是,我找不到使用任何类型的会话侦听器(Spring和Servlet API版本)来侦听SessionCreated事件的方法。登录正在工作,会话正在正确创建。
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
DataSource dataSource;
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.ALWAYS)
.and()
.authorizeRequests()
.antMatchers("/secured/**").authenticated()
.anyRequest().permitAll()
.and()
.formLogin()
.loginPage("/login")
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/")
.and()
.rememberMe().key("unique");
}
...
}
首先,我尝试了最基本的会话监听器:
@Component
public class InitHttpSessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
...
}
}
我也试过这里的答案,也不起作用
从您的评论中可以清楚地看到,您使用的是Spring Session JDBC。由于JDBC的性质,它不支持会话事件的发布,因此您无法监听这些事件。
作为解决办法,您可以创建自己的AuthenticationSuccessShandler
,并将填充session
的逻辑放在其中。或者使用Spring事件侦听器侦听AuthenticationSuccessEvent
(进入会话比较困难,但可以做到)。
问题内容: 我目前在我的项目中使用类型,并且遇到问题。 上面的代码中的可以是或。这是类型的原因。 我知道不是。 我需要知道的是如何使它工作。 问题答案: 可编码需要知道要转换的类型。 首先,我将尝试解决不知道类型的问题,看看是否可以解决它并使它更简单。 否则,我目前认为解决您的问题的唯一方法就是使用如下所示的泛型。
问题内容: 在哪种情况下,您应该使用原始类型()还是引用类型()? 问题答案: 在哪种情况下,您应该使用原始类型()还是引用类型()? 根据经验,除非必须使用包装原始语言的类,否则我将使用原始语言(例如)。 一种情况是必须使用包装器类,例如在使用泛型的情况下,因为Java不支持将原始类型用作类型参数: 而且,在许多情况下,我将利用autoboxing和unboxing的优势,因此不必显式执行从原语
在我的Spring Boot应用程序中,我尝试实现模板方法,在我的具体类中,我尝试使用泛型,如下所示: 模板界面:不确定我是否需要使用它? 模板抽象类: 混凝土等级: 我在dto中得到“无法解析‘T’中的方法‘getName’”。getName()行输入AbstractPDFGenerator。 我的问题是: 1.为了解决这个问题,我想从继承和的基类扩展T。但是,我不想从基类继承它们,因为它们没有
假设您有以下抽象java类: 以及以下子类层次结构: 假设您需要在超类上的给定点使用泛型类型,例如,为了在构造函数上使用gson库将请求json反序列化到特定的请求对象,如下所示: 您需要变量“typeOfI”中的泛型I类型 是否有一个全局解决方案,允许获得由尊重以下约束的具体子类指定的泛型类型? 该类型是在运行时获取的,与子类的层次结构无关(这个问题的示例可能更复杂) 开发人员只需要定义泛型来扩
我想保存学生和教师的信息使用单一的邮政API。如果我选择“学生”类型,数据将保存在学生表中。如果我选择“教师”类型,数据将保存在教师表中。但是该操作将由一个API调用完成。
我试图测试一个@Controller类,其中有来自POJO的列表。我可以在另一个@RESTController类中使用@Autowired来连接控制器,但在同样的情况下,我不能将其用于测试。 user.java UserContrell3.java 在下一个类中,userresource.java我可以做@autowired 但是,在测试类UserTest.java中。我不能: 提前感谢!