我有 10 条骆驼路线,如下所示:
\n@AllArgsConstructor\npublic class MyCamelRoute extends RouteBuilder {\n\n /**\n * {@inheritDoc}\n */\n @Override\n public void configure() throws Exception {\n }\n} \nRun Code Online (Sandbox Code Playgroud)\n多于MyCamelRoute是使用以下代码创建的,该代码将 Camel 路由加载到 Spring 容器中:
@Bean("myCamelRoute")\n public RouteBuilder createMyCamelRoute () {\n return new MyCamelRoute();\n }\nRun Code Online (Sandbox Code Playgroud)\n现在我需要在 Camel 上下文 \xe2\x80\x93 上有一个覆盖所有路由的全局异常处理程序。
\n我在配置中添加了以下属性:
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) 我正在使用 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) 我想使用 Terraform 创建 EC2 实例。该实例应该有一些 EBS。
在文档中我读到 Terraform 提供了两种创建 EBS 的方法:
ebs_block_deviceaws_ebs_volume和aws_volume_attachment我想知道,我应该什么时候使用ebs_block_device?
文档
不幸的是,文档不太清楚(至少对我来说):
ebs_block_device?请参阅资源:aws_instance:
ebs_block_device- (可选)一个或多个配置块以及附加到实例的附加 EBS 块设备。块设备配置仅适用于资源创建。有关属性和漂移检测的详细信息,请参阅下面的块设备。当将 this 作为属性引用访问时,它是一组对象。
和
ebs_block_device目前, Terraform 无法自动检测现有资源配置的更改。要管理 EBS 块对实例的更改和附件,请改用aws_ebs_volume和aws_volume_attachment资源。如果您ebs_block_device在 上使用aws_instance,Terraform 将承担对实例的全套非根 EBS 块设备的管理,将其他块设备视为漂移。因此,不能与给定实例的外部和资源ebs_block_device混合。aws_ebs_volumeaws_volume_attachment
研究
我读:
plan/的更改apply,并且不会更改 AWS 中的任何内容,尽管进行了更改。plan。我正在尝试将更新的 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) 我需要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) 我将源代码导入到 Eclipse Java 项目中。但是,在使用“SVN”进行“团队同步”时,出现以下错误:
此同步涉及的所有模型类型均被禁用,这意味着没有可显示的元素
我无法与 SVN 同步。您能告诉我为什么会出现这个问题以及如何解决它吗?
我收到以下异常:
javax.validation.ConstraintDeclarationException:HV000151:覆盖另一个方法的方法不得改变参数约束配置
在 Wildfly 8.1 服务器上部署我的应用程序时。该项目在以前的 JBoss 7.1 应用服务器上部署并运行良好。我需要更改代码还是配置有问题?
我在服务层有一个异步方法,它从队列中读取消息.我需要将收到的消息发送给当前登录用户的订阅者.
在我的控制器中,我将用户取为
(CustomUserDetail)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但服务层中的相同代码抛出一个
NullPointerException.可能是因为SecurityContextHolder没有在同一个请求响应流中调用而是异步,但同时我认为Spring Security会在会话中保留所有用户安全数据.所以它应该工作正常.
任何人都可以建议解决方法.如何在服务层中获取登录用户?
我觉得一种可能的方法是,当控制器方法将消息推送到队列然后从服务层中的会话中检索用户时,可以将活动用户添加到会话中.
我想在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)
- interactiveMode:
true如果Maven应该尝试与用户交互以进行输入,false如果没有.默认为true.
java ×6
spring-boot ×4
spring ×3
eclipse ×2
apache-camel ×1
camel-ftp ×1
jpa ×1
jwt ×1
maven ×1
migration ×1
outer-join ×1
spring-camel ×1
spring-mvc ×1
svn ×1
terraform ×1
validation ×1
wildfly ×1