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 :
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 :
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é :
protected UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication);
Pour tester, je renvoie toujours un user bidon authentifié :
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.
Partager