をスタックトレースは、現在のフレームワーク2.5を再生と組み合わせるプレイpac4jライブラリとsproblem。プレイpac4j:@RequiresAuthentication注釈原因は私が持っている
注釈:私のコントローラメソッドで
@RequiresAuthentication(clientName = "FacebookClient")
このスタックトレースが発生します。
`
java.lang.NoClassDefFoundError: play/libs/F$Function
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getDeclaredConstructors(Class.java:2020)
at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245)
at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:658)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:882)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214)
Caused by: java.lang.ClassNotFoundException: play.libs.F$Function
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getDeclaredConstructors(Class.java:2020)
at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245)
at
com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99 ) at 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);
}
}
パッケージプレイ.libs.Fは私のプロジェクトで利用可能です。 Eclipse screenshot
私は基本的に何が私の心に来るかを試します。ちょうど私は、ルート設定ファイルの私の住所の一つのためにfacebookで簡単な認証を有効にしたいです。 私はここに掲示された指導に従っていた:https://github.com/pac4j/play-pac4j。 ヘルプとヒントをお待ちしております。
ありがとうございました!私はそれがいくつかのバージョンの不一致に関連する可能性があると思った。 pac4j 2.3.0が期待できるところであれば、どこの情報ですか? – bero
私には分かりません。 2.5互換性の問題は、23日前に発生しただけです。 2.2は現在開発中ですので、2.3にはまだ日付がありません。 – AndyN