# 安全配置
必须通过 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
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
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
2
3
在这种情况下,你可以为所有客户端定义:
- 相同的回调 URL、
UrlResolver
和 CallbackUrlResolver:clients.setCallbackUrl(callbackUrl)
,clients.setUrlResolver(urlResolver)
和clients.setCallbackUrlResolver(callbackUrlResolver)
- 相同的 AjaxRequestResolver:
clients.setAjaxRequestResolver(ajaxRequestResolver)
- 相同的 AuthorizationGenerator:
clients.addAuthorizationGenerator(authorizationGenerator)
# 3)高级
你可以在 Config 级别定义安全过滤器和回调/注销端点将使用的几个组件:
config.setProfileManagerFactory(x)
用于从WebContext
构建 ProfileManagerconfig.setSessionStoreFactory(x)
用于设置一个指定的 SessionStoreconfig.setHttpActionAdapter(x)
用于设置一个指定的 HttpActionAdapterconfig.setSecurityLogic(x)
用于设置一个指定的SecurityLogic
config.setCallbackLogic(x)
用于设置一个指定的CallbackLogic
config.setLogoutLogic(x)
用于设置一个指定的LogoutLogic
config.setWebContextFactory(x)
用于设置一个指定的 WebContextFactory。