# 安全配置

必须通过 Config (opens new window) 对象定义安全配置。

# 1)基础

它收集了所需的:

示例

FacebookClient facebookClient = new FacebookClient("145278422258960", "be21409ba8f39b5dae2a7de525484da8");
TwitterClient twitterClient = new TwitterClient("CoxUiYwQOSFDReZYdjigBA", "2kAzunH5Btc4gRSaMr7D7MkyoJ5u1VzbOOzE8rBofs");

Config config = new Config("http://localhost:8080/callback", facebookClient, twitterClient);

config.addAuthorizer("admin", new RequireAnyRoleAuthorizer("ROLE_ADMIN"));
config.addAuthorizer("custom", new CustomAuthorizer());

config.addMatcher("excludedPath", new ExcludedPathMatcher("^/facebook/notprotected\\.jsp$"));
1
2
3
4
5
6
7
8
9

http://localhost:8080/callback 是回调端点的 URL。这仅对间接客户端是必需的,并且可以对 web 服务删除:

ParameterClient parameterClient = new ParameterClient("token", new JwtAuthenticator(salt));

Config config = new Config(parameterClient);
1
2
3

# 2)客户端

你还可以使用中间 Clients (opens new window) 对象来构建 Config 对象。

示例

Clients clients = new Clients("http://localhost:8080/callback", facebookClient, twitterClient, parameterClient);

Config config = new Config(clients);
1
2
3

在这种情况下,你可以为所有客户端定义:

  • 相同的回调 URL、UrlResolverCallbackUrlResolver:clients.setCallbackUrl(callbackUrl)clients.setUrlResolver(urlResolver)clients.setCallbackUrlResolver(callbackUrlResolver)
  • 相同的 AjaxRequestResolverclients.setAjaxRequestResolver(ajaxRequestResolver)
  • 相同的 AuthorizationGenerator: clients.addAuthorizationGenerator(authorizationGenerator)

# 3)高级

你可以在 Config 级别定义安全过滤器和回调/注销端点将使用的几个组件:

  • config.setProfileManagerFactory(x) 用于从 WebContext 构建 ProfileManager
  • config.setSessionStoreFactory(x) 用于设置一个指定的 SessionStore
  • config.setHttpActionAdapter(x) 用于设置一个指定的 HttpActionAdapter
  • config.setSecurityLogic(x) 用于设置一个指定的 SecurityLogic
  • config.setCallbackLogic(x) 用于设置一个指定的 CallbackLogic
  • config.setLogoutLogic(x) 用于设置一个指定的 LogoutLogic
  • config.setWebContextFactory(x) 用于设置一个指定的 WebContextFactory

原文链接 (opens new window)