这段 Java 代码片段有什么问题?
ClientRegistration registration = new ClientRegistration.Builder(properties.getClientId())
.authorizationUri(properties.getAuthorizationUri())
.build();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息,但不明白:
error: Builder(String) has private access in Builder
ClientRegistration registration = new ClientRegistration.Builder(properties.getClientId())
^
Run Code Online (Sandbox Code Playgroud)
据我了解,此错误通常是由如下代码引起的:
ClientRegistration registration = new ClientRegistration().Builder(properties.getClientId())
Run Code Online (Sandbox Code Playgroud)
上面的代码是该问题的正确解决方案。但现在我遇到了相反的问题。
任何想法?
不能ClientRegistration.Builder使用关键字创建,new因为它的构造函数是私有的。
你应该是:
ClientRegistration.Builder builder = ClientRegistration.withRegistrationId(registrationIdAsString)
Run Code Online (Sandbox Code Playgroud)
ClientRegistration.Builder这为您创造了一个新的。
之后,您可以在 中设置字段ClientRegistration.Builder并调用.build()以获取您的ClientRegistration. 像那样:
ClientRegistration registration = builder.authorizationUri(properties.getAuthorizationUri())
.build();
Run Code Online (Sandbox Code Playgroud)
查看构建器的 JavaDocs 以了解可以设置哪些属性: https ://docs.spring.io/spring-security/site/docs/5.0.x/api/org/springframework/security/oauth2/client /注册/ClientRegistration.Builder.html
或者在一行中,就像你所做的那样:
ClientRegistration registration = ClientRegistration.withRegistrationId(properties.getClientId())
.authorizationUri(properties.getAuthorizationUri())
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3414 次 |
| 最近记录: |