如何从pac4jhttp的2.31版本升级到5.3.1版本,并将参数修复为org.pac4j.core.credenti



我正在尝试将pac4j http:2.31升级到5.3.1,需要帮助处理Authenticator接口中validate()函数的参数列表中的一个突发更改。

以前我使用的是Authenticator(org.pac4j.core.credentials.authenticator.Authenticator),方法是public void validate(TokenCredentials credentials, WebContext context),现在改为public void validate(Credentials credentials, WebContext context, SessionStore sessionStore)

下面的早期代码:

private static class TestAuthenticator implements Authenticator<TokenCredentials>
{
@Override
public void validate(TokenCredentials credentials, WebContext context)
{
if (TEST_TOKEN.equals(credentials.getToken()))
{
credentials.setUserProfile(mockUserProfile());
}
}
}

所以我的问题是,如何升级到5.3.1的最新版本。其中Authenticator类的validate方法具有Credential参数而不是TokenCredential?既然validate方法参数已更改,我们现在如何验证令牌?

由于CredentialsTokenCredentials的超类,因此您似乎可以执行以下操作:

private static class TestAuthenticator implements Authenticator {
@Override
public void validate(Credentials credentials, WebContext context, SessionStore sessionStore) {
TokenCredentials tokenCredentials = (TokenCredentials) credentials;
if (TEST_TOKEN.equals(tokenCredentials.getToken())) {
tokenCredentials.setUserProfile(mockUserProfile());
}
}
}

不过,如果我错过了什么,请道歉。似乎从Authenticator中删除了泛型类型,这意味着现在需要强制转换。

相关内容

  • 没有找到相关文章

最新更新