我正在尝试在 Intellij v2020.1 中设置远程调试器,但不断收到以下错误:
无法打开调试器端口(localhost:5005):java.io.IOException“握手失败 - 连接过早关闭”
在我的 docker compose 文件中,我已将端口 5005 安装到 5005
在我的 docker 文件中,我有:
EXPOSE 5005
ENTRYPOINT ["/bin/bash", "runme.sh"]
在我的 shell 脚本中我有:
/opt/java/openjdk/bin/java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar mine.jar
当我执行 docker ps 时,我可以看到以下内容:
0.0.0.0:5005->5005/tcp, 0.0.0.0:8111->8111/tcp
在 IntelliJ 中,我将远程调试器从端口 5005 设置为容器端口 5005,添加到模块 claspath 中,并在启动前步骤中添加到我的 compose 文件中。
服务启动正常,但无法连接到调试器,有什么想法吗?
我正在使用带有 mongo 数据库的 Spring boot v2。我想知道对数据模型进行部分更新的最佳方法是什么。假设我有一个具有 x 个属性的模型,根据请求,我可能只想更新其中 1 个、2 个或 x 个属性。我应该为每种类型的更新操作公开一个端点,还是可以公开一个端点并以通用方式执行它?注意我需要能够验证请求属性的内容(例如电话号码必须仅为数字)
谢谢,
我正在尝试配置我自己的成功和身份验证失败处理程序。在身份验证失败时,我想使用请求参数重定向回我的登录页面,此参数的存在将在我的登录页面上输出错误消息。但是,尽管出错时我被重定向回我的登录页面,但请求参数始终为null.
代码如下:
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login.html").permitAll()
.usernameParameter("username")
.passwordParameter("password")
.loginProcessingUrl("/login")
.successHandler(successHandler())
.failureHandler(handleAuthenticationFailure());
}
@Autowired
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//database checks
}
};
}
/**
* Authentication success handler defines action when successfully authenticated
* @return
*/
@Bean
public AuthenticationSuccessHandler successHandler(){
return new AuthenticationSuccessHandler() {
@Override
public void onAuthenticationSuccess(HttpServletRequest httpRequest, HttpServletResponse httpResponse, Authentication authentication)
throws IOException, ServletException {
// custom auth success here
httpResponse.setStatus(HttpServletResponse.SC_OK); …Run Code Online (Sandbox Code Playgroud)