vek*_*tor 5 playframework securesocial typesafe-activator
我正在使用Play Framework 2.3.2和Activator 1.2.3,我正在尝试使用SecureSocial插件master-SNAPSHOT.
文档说明如下:
SecureSocial采用模块化架构设计,使用插件.这意味着您可以轻松启用/禁用它们以仅包含您需要的内容,并且如果需要自定义工作方式,您还可以更改自己实现的内置插件.
插件在conf目录下的play.plugins文件中定义.如果您还没有该文件,请创建一个并添加:
[插件示例列表]
只有play.plugins文件中包含的身份验证提供程序才会显示在登录页面上.
(重点补充.)
我现在正在尝试SecureSocial存储库中包含的Java Demo.该play.plugins文件只包含一行:
1500:com.typesafe.plugin.CommonsMailerPlugin
Run Code Online (Sandbox Code Playgroud)
但如果我运行演示,所有提供商都可用:

如何关闭一些提供商?根据我希望在文档中注释掉一些内容的文档play.plugins,但没有一条可以评论出来.
这里发生了什么?
如果未在插件文件中配置提供程序,则必须使用master-SNAPSHOT而不是2.1.3 - 它不再使用Play插件.相反,现在有一个RuntimeEnvironment,您可以在其中配置模块可用的服务(包括您需要实现的UserService).
默认环境包括所有提供程序,并且是演示使用的内容:https://github.com/jaliss/securesocial/blob/master/samples/java/demo/app/service/MyEnvironment.scala
主人和文档中有很多变化尚未更新.要自定义可用的提供程序,您需要创建自己的环境类,扩展RuntimeEnvironment.Default并覆盖提供程序字段.例如:
class MyEnvironment extends RuntimeEnvironment.Default[DemoUser] {
override val userService: UserService[DemoUser] = new MyUserService()
override lazy val providers = ListMap(
include(
new FacebookProvider(routes, cacheService,oauth2ClientFor(FacebookProvider.Facebook))
),
include(
new FoursquareProvider(routes,cacheService,oauth2ClientFor(FoursquareProvider.Foursquare))
),
include(
new UsernamePasswordProvider[DemoUser](userService, avatarService, viewTemplates, passwordHashers)
)
)
}
Run Code Online (Sandbox Code Playgroud)
MyUserService您的UserService实现DemoUser位于何处,是您希望用于在操作中表示用户的类.
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |