Salut,

Je souhaiterais que mon appli flex s'authentifie automatiquement par SSO (sous Windows).

Je m'explique.

Côté Flex, je peux m'authentifier avec un login+password sur le channelSet d'un RemoteObject :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
private function login():void {
    ro.channelSet.login("user", "password");
}

Côté serveur, où j'utilise spring-security, dans le fichier de configuration j'ai défini mon authentification-provider avec son userDetailsService :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
    <bean id="authenticationProvider"  class="UserDetailsAuthenticationProvider">
    	<security:custom-authentication-provider />
        <property name="userDetailsService">  
            <ref bean="myUserDetailsService"/>
        </property>  
    </bean>
 
    <bean id="myUserDetailsService" class="MyUserDetailsService" />
Et en gros, quand j'appelle la fonction ActionScript login() côté client, ça appelle côté serveur, et vérifie si dans UserDetails l'utilisateur est authentifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
protected UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication);
Pour tester, je renvoie toujours un user bidon authentifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
return new User("user", "password", true, true, true, true, new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_USER") });
Ainsi, je suis authentifié côté client et je peux appeler mes méthodes sécurisées.


Le problème, c'est que je voudrais avoir les "vrais" users, et notamment récupérer le login SSO de l'utilisateur, côté serveur, pour pouvoir ensuite indiquer dans mon UserDetails si l'utilisateur a les droits ou pas.

Et c'est là que je bloque : comment récupérer côté serveur les informations SSO de l'utilisateur, en passant par SpringSecurity (qui je crois utilise jcifs)?

Merci de votre aide.