Reactive Spring 5安全性Kotlin的主要名称
我正在尝试将Reactive Spring Security示例( https://github.com/spring-tips/reactive-security/blob/master/src/main/java/com/example/securitydemo/SecurityDemoApplication.java )转换为Kotlin 。
这是我迄今为止:
WebConfiguration.kt
@Configuration class WebConfiguration { fun message(serverRequest: ServerRequest): Mono<ServerResponse> { val principalPublisher = serverRequest.principal().map { p -> "Hello, " + p.name + "!" } return ServerResponse.ok().body(principalPublisher.toMono()) } @Bean fun routes() = router { GET("/message") { ServerResponse.ok().body(message(it)) } } }
SecurityConfiguration.kt
@Configuration @EnableWebFluxSecurity class SecurityConfiguration { @Bean fun userDetailsRepository(): UserDetailsRepository { val user = User.withUsername("user").roles("USER").password("password").build() return MapUserDetailsRepository(user) } @Bean fun security(httpSecurity: HttpSecurity): SecurityWebFilterChain { return httpSecurity .authorizeExchange() .pathMatchers("/users/{username}") .access { mono, context -> mono .map { auth -> auth.name.equals(context.variables["username"]) } .map(::AuthorizationDecision) } .anyExchange().authenticated() .and() .build() } }
登录后,进入http://localhost:8080/message
,得到的响应是data:
而不是Hello, user!
。 我如何检索登录用户的名称并显示该消息? 另外,有没有更好的“科特林”方式来实施这个例子?
- 不能使用MongoDB的spring验证
- Spring Security,Method Security注解(@Secured)不工作(java config)
- IntelliJ社区找不到Web应用程序工件来生成WAR
- 如何在后端获取用户国家的HTTP请求?
- 与AsyncRestTemplate Netty客户端的Spring启动失败
- 我不能在Springboot-Kotlin中排除MongoAutoConfiguration(MongoSocketOpenException)
- 异常处理程序不能使用`spring-boot-starter-data-rest`
- 使用kotlin-spring插件,还是得不到类的打开错误
- kotlin和@Valid Spring注解