Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java play-pac4j和play 2.5:@requireAuthentication注释导致stacktrace_Java_Authentication_Sbt_Playframework 2.5 - Fatal编程技术网

Java play-pac4j和play 2.5:@requireAuthentication注释导致stacktrace

Java play-pac4j和play 2.5:@requireAuthentication注释导致stacktrace,java,authentication,sbt,playframework-2.5,Java,Authentication,Sbt,Playframework 2.5,我目前遇到了与play-pac4j库和play框架2.5相结合的问题 注释: @RequiresAuthentication(clientName = "FacebookClient") 在我的控制器中,方法导致此堆栈跟踪: ` com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99) 在com.google.inject.internal.InjectorImpl.crea


我目前遇到了与play-pac4j库和play框架2.5相结合的问题

注释:

@RequiresAuthentication(clientName = "FacebookClient")
在我的控制器中,方法导致此堆栈跟踪:

`

com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99) 在com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:658)上

)
            at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:882)
`

这是我用于依赖项的build.sbt中的片段:

libraryDependencies ++= Seq(
      "org.pac4j" % "play-pac4j" % "2.1.0",
      "org.pac4j" % "pac4j" % "1.8.7",
      "org.pac4j" % "pac4j-http" % "1.8.7",
      "org.pac4j" % "pac4j-cas" % "1.8.7",
      "org.pac4j" % "pac4j-openid" % "1.8.7",
      "org.pac4j" % "pac4j-oauth" % "1.8.7",
      "org.pac4j" % "pac4j-saml" % "1.8.7",
      "org.pac4j" % "pac4j-oidc" % "1.8.7",
      "org.pac4j" % "pac4j-gae" % "1.8.7",
      "org.pac4j" % "pac4j-jwt" % "1.8.7",
      "org.pac4j" % "pac4j-ldap" % "1.8.7",
      "org.pac4j" % "pac4j-sql" % "1.8.7",
      "org.pac4j" % "pac4j-mongo" % "1.8.7",
      "org.pac4j" % "pac4j-stormpath" % "1.8.7")
我的SecurityModule类:

public class SecurityModule extends AbstractModule {
protected void configure() {
    FacebookClient facebookClient = new FacebookClient("KEY", "SECRET_KEY");
    Clients clients = new Clients("http://localhost:9000/callback",facebookClient);
    Config config = new Config(clients);
    config.addAuthorizer("admin",new RequireAnyRoleAuthorizer("ROLE_ADMIN"));
    bind(Config.class).toInstance(config);

}
}

包play.libs.F在我的项目中可用。

我基本上都在尝试我想到的一切。现在我只想在路由配置文件中为我的一个地址启用facebook的简单身份验证。 我在这里发布了以下说明:。
任何帮助和提示都将不胜感激。

查看问题页面,pac4j与Play 2.5不兼容。听起来pac4j使用的2.5中缺少了一些API。您在堆栈交易中看到的是Play 2.5删除了scala
f.Function
f.Function0
类,而不是Java8
java.util.function.*
类型。上面有doco


简而言之,要么等待pac4j 2.3.0面世,要么回到2.4版。

谢谢!我想这可能与版本不匹配有关。有什么信息可以告诉我们什么时候可以期待pac4j 2.3.0?我看不到。2.5兼容性问题在23天前才提出来。2.2目前正在开发中,所以我想2.3没有我还没有约会。
public class SecurityModule extends AbstractModule {
protected void configure() {
    FacebookClient facebookClient = new FacebookClient("KEY", "SECRET_KEY");
    Clients clients = new Clients("http://localhost:9000/callback",facebookClient);
    Config config = new Config(clients);
    config.addAuthorizer("admin",new RequireAnyRoleAuthorizer("ROLE_ADMIN"));
    bind(Config.class).toInstance(config);

}