我使用angular2作为前端和Spring启动Rest控制器。在添加Spring安全性之前,我的应用程序工作正常。添加安全性后,带参数的函数不会在Spring启动Rest控制器中调用。下面是代码
Rest Controller:
----------------
@RestController
public class JobCleanupServiceController {
private static final Logger logger = LoggerFactory.getLogger(JobCleanupServiceController.class);
@Autowired
JobCleanupDAO dao;
@CrossOrigin(origins = "http://localhost:4200")
@RequestMapping("/jobcleanup")
public Collection<JobCleanup> index(@RequestBody String owner) {
logger.info("Display All Jobs"+ owner);
return dao.findAll(owner);
}
@CrossOrigin(origins = "http://localhost:4200")
@RequestMapping("/jobcleanupclosedtickets")
public JobCleanupMetrics getJobCleanupClosedTickets()
{
logger.info("JobCleanupMetrics getJobCleanupClosedTickets ");
return dao.getJobCleanupClosedTickets();
}
@CrossOrigin(origins = "http://localhost:4200")
@RequestMapping("/jobcleanuplinechartdata")
public JobCleanupChart getJobCleanupLineChartData(@RequestBody String owner){
return dao.getJobCleanupLineChartData(owner);
}
WebConfig.java
-------------
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors();
http.authorizeRequests()
.antMatchers(
"/jobcleanup",
"/jobcleanupclosedtickets",
"/jobcleanuplinechartdata"
).permitAll();
}
@Bean
public CorsConfigurationSource corsConfigurationSource() {
final CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("*"));
configuration.setAllowCredentials(true);
configuration.setAllowedHeaders(Arrays.asList("*"));
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
在我加入spring security之前http://localhost:4200,所有这些都被称为“/jobcleanup”、“/jobcleanupclosedtickets”、“/JobCleanupUplineChartData”。在添加spring security only之后,会调用“/jobcleanupclosedtickets”,其他方法不会被调用。除了“/jobcleanupclosedtickets”之外,其他方法都有请求主体。
有人能帮我解决这个问题吗?
更新了SecurityConfig。java如下所示。默认情况下,csrf在spring security中启用。
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
http.cors();
}
@Bean
public CorsConfigurationSource corsConfigurationSource() {
final CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("*"));
configuration.setAllowCredentials(true);
configuration.setAllowedHeaders(Arrays.asList("*"));
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
我正在测试家庭控制器 我使用spring security作为用户名“user”,默认情况下作为密码进行测试,但@PreAuthorize不起作用 的结果 预期结果: 实际结果: 我错过了什么吗?
我的应用程序有Spring boot 1.3.2,我正在尝试将Spring MVC与Spring Security结合使用。 我有管理小组http://localhost:8080/admin和我的普通用户页面内容http://localhost:8080/ 如果你试图打开一个管理面板(http://localhost:8080/admin)你必须登录,如果你是常见的只需输入http://loca
我有低于pom的。SpringBoot应用程序中的xml。在运行应用程序时,我没有遇到任何错误。但当我通过邮递员或浏览器点击URL时,控制器中的java代码不会被执行。 波姆。xml: 控制器: 项目执行截图: Spring Boot应用程序类: Spring启动存储库类: 将BasePackage添加为com后。下面是一个例外情况: 2022-03-21 09:51:35.169WARN 205
我正在尝试测试以下控制器: 下面是测试类: 当我运行测试失败,并给我以下消息: 当我测试的url正常工作。
我面临的挑战是,我找不到一种方法来配置安全性,使到/profilesendpoint的POST请求不受保护,而GET或PUT的请求从提供的承载令牌传递到派生的@AuthenticationPrincipal中。 我想在API中设置以下内容:POST/profile创建新用户-无安全性GET/profile/{id}按id获取用户-需要管理员权限或用户是authd POST/password/res
嗨,我用spring初始化器创建了一个简单的Spring Boot应用程序。我在主应用程序类的同一文件夹中添加了一个控制器。 这是给我以下错误的网址http://localhost:8080/welcome 此应用程序没有针对/错误的显式映射,因此您将其视为回退。 Sat Dec 19 12:51:44 IST 2020出现意外错误(类型=未找到,状态=404)。 如果我使用@restContro