@Bean public CasClient casClient() { CasClient casClient = new CasClient(); casClient.setConfiguration(casConfiguration()); casClient.setCallbackUrl(callbackUrl); casClient.setName("cas"); return casClient; }
@Override public RedirectAction build(final CasClient casClient, final WebContext context) { val casConfiguration = casClient.getConfiguration(); return build(casClient, context, casConfiguration.isRenew(), casConfiguration.isGateway()); }
/** * Build with predefined renew and gateway parameters. * * @param casClient the cas client config * @param context the context * @param renew ask for credentials again * @param gateway skip asking for credentials * @return the redirect action */ protected RedirectAction build(final CasClient casClient, final WebContext context, final boolean renew, final boolean gateway) { val serviceUrl = casClient.computeFinalCallbackUrl(context); val casServerLoginUrl = casClient.getConfiguration().getLoginUrl(); val redirectionUrl = casServerLoginUrl + (casServerLoginUrl.contains("?") ? "&" : "?") + CasProtocolConstants.PARAMETER_SERVICE + '=' + EncodingUtils.urlEncode(serviceUrl) + (renew ? '&' + CasProtocolConstants.PARAMETER_RENEW + "=true" : "") + (gateway ? '&' + CasProtocolConstants.PARAMETER_GATEWAY + "=true" : ""); LOGGER.debug("Final redirect url is [{}]", redirectionUrl); return RedirectAction.redirect(redirectionUrl); } }
public void tryCreateCasClient(final List<Client> clients) { for (int i = 0; i <= MAX_NUM_CLIENTS; i++) { final String loginUrl = getProperty(CAS_LOGIN_URL, i); final String protocol = getProperty(CAS_PROTOCOL, i); if (isNotBlank(loginUrl)) { CasConfiguration configuration = new CasConfiguration(); final CasClient casClient = new CasClient(configuration); configuration.setLoginUrl(loginUrl); if (isNotBlank(protocol)) { configuration.setProtocol(CasProtocol.valueOf(protocol)); } casClient.setName(concat(casClient.getName(), i)); clients.add(casClient); } } } }
@Bean public Config oauthSecConfig() { val cfg = new CasConfiguration(casProperties.getServer().getLoginUrl()); val oauthCasClient = new CasClient(cfg); oauthCasClient.setRedirectActionBuilder(webContext -> oauthCasClientRedirectActionBuilder().build(oauthCasClient, webContext)); oauthCasClient.setName(Authenticators.CAS_OAUTH_CLIENT); oauthCasClient.setUrlResolver(casCallbackUrlResolver()); val authenticator = oAuthClientAuthenticator(); val basicAuthClient = new DirectBasicAuthClient(authenticator); basicAuthClient.setName(Authenticators.CAS_OAUTH_CLIENT_BASIC_AUTHN); val directFormClient = new DirectFormClient(authenticator); directFormClient.setName(Authenticators.CAS_OAUTH_CLIENT_DIRECT_FORM); directFormClient.setUsernameParameter(OAuth20Constants.CLIENT_ID); directFormClient.setPasswordParameter(OAuth20Constants.CLIENT_SECRET); val pkceAuthnClient = new DirectFormClient(oAuthProofKeyCodeExchangeAuthenticator()); pkceAuthnClient.setName(Authenticators.CAS_OAUTH_CLIENT_PROOF_KEY_CODE_EXCHANGE_AUTHN); pkceAuthnClient.setUsernameParameter(OAuth20Constants.CLIENT_ID); pkceAuthnClient.setPasswordParameter(OAuth20Constants.CODE_VERIFIER); val userFormClient = new DirectFormClient(oAuthUserAuthenticator()); userFormClient.setName(Authenticators.CAS_OAUTH_CLIENT_USER_FORM); val config = new Config(OAuth20Utils.casOAuthCallbackUrl(casProperties.getServer().getPrefix()), oauthCasClient, basicAuthClient, pkceAuthnClient, directFormClient, userFormClient); config.setSessionStore(new J2ESessionStore()); return config; }
@Bean Config getConfig(JboneConfiguration jboneConfiguration,ShiroSessionStore sessionStore,JboneCasLogoutHandler jboneCasLogoutHandler){ CasConfiguration casConfiguration = new CasConfiguration(jboneConfiguration.getCas().getCasServerUrl()+jboneConfiguration.getCas().getLoginUrl(), jboneConfiguration.getCas().getCasServerUrl()); casConfiguration.setAcceptAnyProxy(true); casConfiguration.setLogoutHandler(jboneCasLogoutHandler); CasClient casClient = new CasClient(casConfiguration); casClient.setCallbackUrl(jboneConfiguration.getCas().getCurrentServerUrlPrefix() + jboneConfiguration.getCas().getCasFilterUrlPattern() + "?client_name=CasClient"); casClient.setIncludeClientNameInCallbackUrl(false); Clients clients = new Clients(jboneConfiguration.getCas().getCurrentServerUrlPrefix() + jboneConfiguration.getCas().getCasFilterUrlPattern() + "?client_name=CasClient", casClient); Config config = new Config(clients); config.setSessionStore(sessionStore); return config; }
final CasClient casClient = new CasClient(configuration);
/** * cas客户端配置 * * @return */ @Bean public CasClient casClient() { CasClient casClient = new CasClient(); casClient.setConfiguration(casConfiguration()); casClient.setCallbackUrl(callbackUrl); casClient.setName("cas"); return casClient; }
final CasClient casClient = new CasClient(casConfiguration);