我有一个springboot/openapi应用程序。不依赖Spring Security性。通过swagger启动POST请求时,返回的状态为403。请求未到达控制器类。然而,Get请求确实有效,并返回状态200。
配置如下
@Configuration
public class Config {
@Bean
ForwardedHeaderFilter forwardedHeaderFilter() {
return new ForwardedHeaderFilter();
}
}
}
application.yaml
server:
port: 50086
forward-headers-strategy: framework
use-forward-headers: true
403状态的原因可能是什么?
控制器
@CrossOrigin
@RestController
@RequestMapping("/ta")
public class TaController {
@Operation(summary = "Calculate")
@RequestMapping(value = "/calculateWithPrices", method = RequestMethod.POST)
public ResponseEntity<CaculationResponseDto> calculateWithPrices(@RequestBody CaculationWithPricesRequestDto caculationWithPricesRequestDto) {
// code ...
}
尝试添加一个继承自WebSecurityConfigrerAdapter的SecurityConfig。示例在这里。
使用方法配置,您可以设置对特定urlendpoint的访问并允许对它们进行调用。
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CustomAuthenticationProvider authProvider;
@Autowired
public void configAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(authProvider).eraseCredentials(false);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().and().authorizeRequests().antMatchers("**apiEndpoint**").authenticated()
.and().csrf().disable().headers().frameOptions().disable().and().sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS);
// Deactivate authorization for whole application
// http.authorizeHttpRequests().antMatchers("/**").permitAll().and().csrf().disable();
}
}
类CustomAuthenticationProvider:
@Component
public class CustomAuthenticationProvider implements AuthenticationProvider {
@Autowired
private ICustomerRepository customerRepository;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
String id = authentication.getName().toString();
String pin = authentication.getCredentials().toString();
try {
// Check if the customer passed in Username exists
CustomerDTO customer = customerRepository.findById(Long.parseLong(id)).orElseThrow();
} catch (Exception e) {
// TODO Auto-generated catch block
throw new BadCredentialsException(id);
}
Collection<? extends GrantedAuthority> authorities = Collections
.singleton(new SimpleGrantedAuthority("ROLE_CUSTOMER"));
return new UsernamePasswordAuthenticationToken(id, pin, authorities);
}
@Override
public boolean supports(Class<?> authentication) {
return authentication.equals(UsernamePasswordAuthenticationToken.class);
}
}
我正在做一个新项目,我想实现一个“等到网站打开”功能,如果http://switch-check.cf/index.php打开,然后继续。 现在,在我的帮助下。htaccess和php我尽了最大的努力。禁止访问php文件。因此,如果你试图访问我提到的网页,你应该得到一个 403拒绝访问 因此,我使用urllib(也尝试了请求)查看网站是否已打开或仍处于禁止访问状态然而,无论我尝试什么,我总是得到2
嗨,我是Laravel的新手,我正在尝试用ajax表单提交构建一个登录表单。 我抄了 如果我从VerifyCsrfToken检查中排除它,我的代码工作完全正常。但是我确实希望令牌验证有效。 我读过多篇关于csrf令牌的帖子,尝试过,但仍然返回状态码419。 抱歉下面的长代码,但他们在这里(我知道我没有做任何关于设置会话和东西,请忽略现在因为代码返回419状态) 路线/web.php login.j
我希望根据响应对象错误动态返回HTTPStatus代码,如400、400、404等。我被提到这个问题--使用Spring3RESTful以编程方式更改http响应状态,但没有帮助。 我有一个带有方法的控制器类 是一个类,其中有上面使用的两个方法(和)。 我不想签入if条件并相应地返回响应代码,有没有其他更好的方法来做到这一点?
我正在尝试使用BitBucket GIT存储库设置Jenkins,但Jenkins控制台总是给我以下错误代码: 我尝试过很多不同的方法,但总是失败。我的服务器上允许9418端口上的通信量。服务器处于1 Gbps连接上。
问题内容: 好的,我已经到处寻找了。基本上,我们使用的是跨域请求的$ http请求。我们的服务器允许该域,当请求返回200时,一切正常。但是,无论何时我们的服务器返回错误500、401,无论如何,Angular都认为这是CORS问题。 我用Fiddler调试了响应,以验证服务器是否返回了500,但Angular阻塞了。 这是请求: 然后在控制台中,我将看到: XMLHttpRequest无法加载f
问题内容: 我刚刚更新了Angular + Ionic的新版本,并且处理远程请求的方法停止工作并始终返回404响应。 请求如下: 处理远程请求的方法的代码如下: 但是没有运气。 服务器端通过这种方式处理请求: 如果我试图使用邮递员或卷曲发送请求,一切似乎都在工作。 离子信息: AngularJS版本: 我该如何解决? 非常感谢您的任何建议 问题答案: 哼,我只是遇到了同样的问题:标头表明它已经被拿