我们遇到了Spring网络服务的问题。 我们使用Spring Security来保护我们的管理后端,以便生成api密钥。当我们在本地机器(Windows和macOS)上部署它时,它工作正常,页面加载。如果我们尝试将其部署在具有Debian或Ubuntu的VM上,则未安全的端点加载正常,但是一旦我们点击管理员后端,服务器就会锁定并且不会加载页面。我们尝试使用git repo中的gradle任务bootRun来部署它,编译一个war并将其加载到一个tomcat实例中并编译一个jar并运行它,这些都没有用。我们在控制台中没有任何异常,它看起来运行正常,但是,在我们点击后端后,没有其他页面加载,甚至是之前正在运行的页面。
这是安全配置
ggplot(testDF %>%
mutate(id = factor(id, levels = forSort$id[order(forSort$n)]))
, aes(x=relative_timestamp
, y= id
, color=action)) +
geom_point()
这是控制器
ggplot(testDF %>%
mutate(id = factor(id, levels = forSort$id[order(forSort$max)]) )
, aes(x=relative_timestamp
, y= id
, color=action)) +
geom_point()
这是我们的build.gradle
package me.probE466.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.*;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.*;
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
// auth
// .inMemoryAuthentication()
// .withUser("user").password("password").roles("ADMIN");
}
protected void configure(HttpSecurity http) throws Exception {
http.csrf().ignoringAntMatchers("/post");
http.authorizeRequests()
.antMatchers("/admin/**")
.authenticated()
.antMatchers("/**").permitAll().and().httpBasic();
}
}
任何帮助将不胜感激
答案 0 :(得分:0)
好的,我们想出来了......:
在Spring安全开始时(应该更仔细地阅读)它说:
package hello;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/home").setViewName("home");
registry.addViewController("/").setViewName("home");
registry.addViewController("/hello").setViewName("hello");
registry.addViewController("/login").setViewName("login");
}
}
我们的配置中缺少这个。仍然不知道它为什么在我们的客户端工作(它仍然可以在它们上面工作)但不在linux盒子上,但是在我们添加它之后,它也在那里工作得很好。供将来参考:每个受保护的控制器 NEEDS 在此处注册...至少在我们的服务器上