当处理webhook时,我得到一个未经授权的401,我使用Spring Security和Vaadin
@RestController
@Log4j2
public class WebHookController {
@Inject
KeywordPlanService service;
@Inject
SheetsService sheetsService;
MainView view;
@PostMapping("/notifications")
@AnonymousAllowed
public ResponseEntity<Void> webHookHandler(HttpServletRequest request) {
String headerGoogChanged = request.getHeader("x-goog-changed");
if (!ObjectUtils.isEmpty(headerGoogChanged) && headerGoogChanged.contains("content")) {
service.parseDashboardAndSave(view.getGrid(), sheetsService.readSheetValuesBatch());
sheetsService.writeSheetValuesBatch(service.getKeyWordDashboards());
log.info("Push notification processed: {}", request);
}
return ResponseEntity.ok().build();
}
}
和
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends VaadinWebSecurityConfigurerAdapter {
private static final String LOGIN_URL = "/login";
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http
.oauth2Login()
.loginPage(LOGIN_URL)
.permitAll();
}...
我知道我需要公开我的endpoint
/通知
如何公开endpoint?
已更新
@Override
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.authorizeRequests()
.antMatchers("/notifications")
.permitAll()
.anyRequest()
.authenticated()
.and()
.oauth2Login()
.loginPage(LOGIN_URL);
}
引发消息
2022-06-10 17:39:30.040WARN 37089 --- [ restartedMain]ConfigServletWebServerApplication Context:在上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建名为“springSecurityFilterChain”的bean时出错在类路径资源[org/springFramework/Security/config/注释/web/配置/WebSecurityConfiguration.class]中定义2022-06-10 17:39:30.041WARN 37089 --- [ restartedMain]中定义的名称为“springSecurityFilterChain”的bean错误:通过工厂方法的Bean实例化失败;嵌套异常org.springframework.beans.BeanInstantiationException:无法实例化[javax.servlet.过滤器]:工厂方法“springSecurityFilterChain”抛出异常;嵌套异常java.lang.IllegalStateException:无法在任何请求之后配置antMatcher。
启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2022-06-10 17:39:30.074错误37089---[restartedMain]o.s.boot。SpringApplication:Application运行失败
已断开与目标VM的连接,地址:“127.0.0.1:64031”,传输:“socket”
进程完成,退出代码为0
我不同意停用任何endpoint的安全性,即使通知应该由授权应用程序完成。
要禁用特定终结点的安全性,请尝试以下操作:
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends VaadinWebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception{
http.authorizeRequests().antMatchers("/notifications").permitAll();
super.configure(http);
}
}
添加这行代码:
.antMatchers("/notifications").permitAll()
因此,在你的情况下,它将是这样的:
http.authorizeRequests()
.antMatchers("/notifications")
.permitAll()
.anyRequest()
.authenticated()
.and()
.oauth2Login()
.loginPage(LOGIN_URL);
为什么当我试图从这里的主机获取信息时,我会收到401错误? 我在用我的代币,那不是应该给我完全的权限吗?
我在Spring 4中使用以下内容通过RestTemplate检索JSON: 我使用相同的代码(具有不同的响应类)成功地从相同的站点获得JSON文档(具有不同的参数以获得不同的文档)。 当我执行上述代码时,我收到以下堆栈跟踪(部分): 有人能告诉我为什么这可能会收到异常吗?
这是我尝试过的: 正如这里所解释的,有一些要求: > 步骤1:验证您拥有该域。(使用网站管理员工具完成站点验证过程) null 自签名证书。 由不受信任的来源签名的证书。 已吊销的证书。 主题与目标主机名不匹配的证书。 我所做的: 我已经用SSL证书设置了。 而且,endpoint是可达的,所有内容都检查出来了。 SSL检查器已验证一切正常(5个勾)。即使是SSL链也是正确设置的。检查! null
问题内容: 我从Nexus存储库中检出了代码。我更改了帐户密码,并在文件中正确设置了密码。在执行时,我收到错误消息,说明它尝试从该存储库下载文件。 任何想法如何解决此错误?我在Maven 3.04中使用Windows 7 问题答案: 这里的问题是所使用的密码出现错字错误,由于密码中使用了字符/字母,因此很难识别。
我想控制运行在Eureka服务器中的微服务。我为此使用了spring-boot-admin,但我在访问关于跟踪、日志等的信息时遇到了错误... 我得到的错误是 同样的事情也发生在所有endpoint上,比如映射,env和所有接受健康