小编dur*_*dur的帖子

跨骆驼上下文的全局异常处理程序 - 涵盖所有路由

我有 10 条骆驼路线,如下所示:

\n
@AllArgsConstructor\npublic class MyCamelRoute extends RouteBuilder {\n\n    /**\n     * {@inheritDoc}\n     */\n    @Override\n    public void configure() throws Exception {\n    }\n}  \n
Run Code Online (Sandbox Code Playgroud)\n

多于MyCamelRoute是使用以下代码创建的,该代码将 Camel 路由加载到 Spring 容器中:

\n
 @Bean("myCamelRoute")\n public RouteBuilder createMyCamelRoute () {\n        return new MyCamelRoute();\n }\n
Run Code Online (Sandbox Code Playgroud)\n

现在我需要在 Camel 上下文 \xe2\x80\x93 上有一个覆盖所有路由的全局异常处理程序。

\n

spring apache-camel spring-boot camel-ftp spring-camel

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

server.session.cookie.max-age 似乎不起作用

我在配置中添加了以下属性:

server.session.cookie.max-age=3600
Run Code Online (Sandbox Code Playgroud)

HTTPSet-Cookie标头是:

Set-Cookie: JSESSIONID=3407BD3E1C7153D70EFC5DBD16B059E4; Path=/; Secure; HttpOnly
Run Code Online (Sandbox Code Playgroud)

所以Spring似乎忽略了这个属性。它已被弃用吗?如果没有,为什么它不起作用?

这是我的配置:

server.session.cookie.max-age=3600
Run Code Online (Sandbox Code Playgroud)

java spring-security spring-boot

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

Spring Boot 3 与 Spring Security 拦截异常,我不希望它这样做

我正在使用 Spring Boot 3.0.2 和 Spring Security 构建一个 API,我已经构建了安全过滤器链,并且它在阻止未经身份验证的请求方面工作正常。但我有一个RestController接受 的类application/json,如果我没有正确提供内容类型标头,我希望返回 415 状态代码。如果没有 Spring Security 的阻碍,它会得到很好的返回。但对于 Spring Security 来说,它似乎被拦截并返回 403。

WebSecurityConfig

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http
               .cors().and()
               .csrf().disable()
               .authorizeHttpRequests(auth -> auth
                   .requestMatchers("/auth**").permitAll()
                   .anyRequest().authenticated())
               .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
               .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class)
               .userDetailsService(jpaUserDetailsService)
               .build();
}
Run Code Online (Sandbox Code Playgroud)

验证过滤器:

@Component
@RequiredArgsConstructor
public class JwtAuthFilter extends OncePerRequestFilter {
    private final JwtUtils jwtUtils;

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        String jwtToken = request.getHeader(AUTHENTICATION_HEADER); …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security spring-boot

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

何时使用 ebs_block_device?

我想使用 Terraform 创建 EC2 实例。该实例应该有一些 EBS。

在文档中我读到 Terraform 提供了两种创建 EBS 的方法:

  • ebs_block_device
  • aws_ebs_volumeaws_volume_attachment

我想知道,我应该什么时候使用ebs_block_device

文档

不幸的是,文档不太清楚(至少对我来说):

  • 什么时候使用ebs_block_device
  • 确切的实际行为如何?

请参阅资源:aws_instance

ebs_block_device- (可选)一个或多个配置块以及附加到实例的附加 EBS 块设备。块设备配置仅适用于资源创建。有关属性和漂移检测的详细信息,请参阅下面的块设备。当将 this 作为属性引用访问时,它是一组对象。

ebs_block_device目前, Terraform 无法自动检测现有资源配置的更改。要管理 EBS 块对实例的更改和附件,请改用aws_ebs_volumeaws_volume_attachment资源。如果您ebs_block_device在 上使用aws_instance,Terraform 将承担对实例的全套非根 EBS 块设备的管理,将其他块设备视为漂移。因此,不能与给定实例的外部和资源ebs_block_device混合。aws_ebs_volumeaws_volume_attachment

研究

我读:

terraform terraform-provider-aws

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

如何正确设置 Spring boot 3 安全配置?

我正在尝试将更新的 Spring Security 集成到我的项目中,而不是使用已弃用的extending WebSecurityConfigurerAdapter. 我已经建立了一个很好的系统,用户可以在其中进行身份验证(User实现UserDetails- 我正在使用 Hibernate)并生成令牌。我在这次登录中得到了 200 并收到了一个令牌。这个认证部分工作正常。

现在的问题是我的用户具有角色(例如ADMIN,,USER...)这些角色被添加到生成的令牌中。我的控制器获得@PreAuthorize注释。请求无法通过这些注释并受到禁止。当我不使用 时@PreAuthorize,请求将使用令牌进行验证。

@Configuration
@EnableWebSecurity
@EnableMethodSecurity
public class SecurityConfig {
    private RSAKey rsaKey;
    private final DefaultUserDetailsService defaultUserDetailsService;
    
    public SecurityConfig(DefaultUserDetailsService defaultUserDetailsService) {
        this.defaultUserDetailsService = defaultUserDetailsService;
    }
    
    @Bean
    public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
        return authenticationConfiguration.getAuthenticationManager();
    }

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        
    return http 
               .cors(Customizer.withDefaults())
               .csrf(AbstractHttpConfigurer::disable)
               .authorizeHttpRequests(auth -> auth
                   .requestMatchers("/auth/**").permitAll()
                   .anyRequest().authenticated()
               )            
               .userDetailsService(defaultUserDetailsService)
               .sessionManagement(session -> …
Run Code Online (Sandbox Code Playgroud)

java spring-security jwt spring-boot

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

没有关系的JPA OUTER JOIN

我需要OUTER JOIN在JPA中由两个实体组成(说出主要,详细信息),但是这个问题是在实体级别上没有关系(并且我不想添加它)。

@Entity
class Master
{
    @Column(name="altKey")
    Integer altKey;
}

@Entity
class Detail
{
    @Column(name="altKeyRef")
    @Basic (optional = true)
    Integer altKeyRef;
}
Run Code Online (Sandbox Code Playgroud)
SELECT m, d FROM Master m OUTER JOIN ????? d.altKeyRef = m.altKey
Run Code Online (Sandbox Code Playgroud)

jpa outer-join

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

SVN:本次同步涉及的所有模型类型均被禁用

我将源代码导入到 Eclipse Java 项目中。但是,在使用“SVN”进行“团队同步”时,出现以下错误:

此同步涉及的所有模型类型均被禁用,这意味着没有可显示的元素

我无法与 SVN 同步。您能告诉我为什么会出现这个问题以及如何解决它吗?

eclipse svn

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

迁移到 Wildfly 8.1 时的 Javax 验证异常

我收到以下异常:

javax.validation.ConstraintDeclarationException:HV000151:覆盖另一个方法的方法不得改变参数约束配置

在 Wildfly 8.1 服务器上部署我的应用程序时。该项目在以前的 JBoss 7.1 应用服务器上部署并运行良好。我需要更改代码还是配置有问题?

java migration validation wildfly

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

使用spring security获取服务层中的登录用户

我在服务层有一个异步方法,它从队列中读取消息.我需要将收到的消息发送给当前登录用户的订阅者.

在我的控制器中,我将用户取为

(CustomUserDetail)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,但服务层中的相同代码抛出一个 NullPointerException.可能是因为SecurityContextHolder没有在同一个请求响应流中调用而是异步,但同时我认为Spring Security会在会话中保留所有用户安全数据.所以它应该工作正常.

任何人都可以建议解决方法.如何在服务层中获取登录用户?

我觉得一种可能的方法是,当控制器方法将消息推送到队列然后从服务层中的会话中检索用户时,可以将活动用户添加到会话中.

java spring spring-mvc spring-security spring-integration

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

使用M2Eclipse插件在交互模式下使用versions-maven-plugin设置版本?

我想在Eclipse中更改我的多模块项目的版本versions-maven-plugin和目标versions:set.我用M2Eclipse.

我可以-DnewVersion=0.0.2-SNAPTSHOT在启动配置中设置新版本,它工作正常.但我想使用交互模式.

如果我没有设置-DnewVersion=0.0.2-SNAPTSHOT启动配置,我收到以下错误消息:

[ERROR] Failed to execute goal org.codehaus.mojo:versions-maven-plugin:2.2:set (default-cli) on project test-parent: You must specify the new version, either by using the newVersion property (that is -DnewVersion=... on the command line) or run in interactive mode -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

Maven设置参考说:

  • interactiveMode:true如果Maven应该尝试与用户交互以进行输入,false如果没有.默认为true.

java eclipse maven versions-maven-plugin

3
推荐指数
2
解决办法
993
查看次数