On the issue of using a hostname, I need it to retrieve a user from the 
database - the user is searched using his name and an additional parameter 
that I can specify using the hostname.

As for your suggestions, they are also useful. This is the next step I am 
going to take, namely:
I would like to users from the specified domain to be properly redirected.
If the user comes from https://localhost:8445/casclient2/ then let him show 
standard cas login page with appropriate handler:

{
  "@class" : "org.apereo.cas.services.RegexRegisteredService",
  "serviceId" : "https://localhost:8445/casclient2/";,
  "name" : "JDBC",
  "id" : 1003,
  "description" : "Sample 1",
  "evaluationOrder" : 51,
  "requiredHandlers" : [ "java.util.HashSet", [ 
"QueryAndEncodeDatabaseAuthenticationHandler" ] ]
}
- here's no problem everything works


However if the user comes from https://localhost:8445/casclient2/ then I 
would like to have authenticated using SAML and external Idp - delegated 
authentication.I have tested it using the automatically generated button - 
in the second case I would like the users not even see the form from cas. 


W dniu piątek, 24 listopada 2017 11:29:27 UTC+1 użytkownik Andy Ng napisał:
>
> I also don't know a way to retrive the hostname. However I would like to 
> know what is your use case for the hostname
>
> If, for example, you have 3 hosts that need 3 different customized 
> authentication
>
> 1) https://i-only-use-saml.example.com
> 2) https://i-only-use-oauth.example.com
> 3) https://i-only-use-usernamepassword.example.com
>
> Then you can just registered the above three services, and use the 
> "requiredHandler" param to redirect the three use case to a specific 
> authentication handler. 
> https://apereo.github.io/cas/development/installation/Service-Management.html 
> (if you are planning to use CAS 5.2.0) 
>
> However, if you need to do much more with the hostname, that service 
> management cannot help with your use case, then I might not be able to help 
> you... Maybe you need to read the source code to see how it can be retrived.
>
> - Andy
>
>
> On Thursday, 23 November 2017 22:41:23 UTC+8, snaffy wrote:
>>
>> I would like to know how I can retrieve the encoded address of the 
>> service parameter on the authentication step on the CAS serve side.
>> More precisely I have created CustomAuthenticationHandler and at this 
>> stage, I need to know from what domain the authentication request came 
>> from. For example from this address 
>> https://localhost:8445/cas/login?service=https%3A%2F%2Flocalhost%3A8445%2Fcasclient%2F
>>  
>> I need to extract "localhost"
>>
>>
>> public class CustomAuthenticationHandler implements AuthenticationHandler 
>> {
>>
>>     protected PrincipalFactory principalFactory = new 
>> DefaultPrincipalFactory();
>>
>>     @Autowired
>>     PropertiesConfiguration propertiesConfiguration;
>>     private transient Logger logger = 
>> LoggerFactory.getLogger(this.getClass());
>>
>>    
>>     @Override
>>     public HandlerResult authenticate(Credential credential) throws 
>> GeneralSecurityException, PreventedException {
>>
>>         UsernamePasswordCredential usernamePasswordCredential = 
>> (UsernamePasswordCredential) credential;
>>        // Here I would like to have access to the encoded address
>>    }
>>
>> Thanks in advance for help. 
>>
>

-- 
- Website: https://apereo.github.io/cas
- Gitter Chatroom: https://gitter.im/apereo/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/dd46cf86-60e1-4cc7-bf16-2c7b17eac7f4%40apereo.org.

Reply via email to