Comment mettre en œuvre au Printemps pré-filtre d'authentification?

Je suis en train de mettre en œuvre des pré-authenicated de la sécurité dans notre application web, mais je ne suis pas sûr de savoir comment le faire correctement. Il n'y a pas que de nombreux exemples. Et ceux qui semblent avoir une beaucoup plus simple d'installation que le nôtre.

Nous obtenons nos informations d'authentification dans un en-tête de requête XML avec un prénom, nom, ID utilisateur et une erreur de balise, si tout a eu lieu.

Je suis l'extension de AbstractPreAuthenticatedProcessingFilter et dans son getPreAuthenticatedPrincipal() j'ai extrait de l'en-tête, unmarshall elle, et ne la validation de certains.

Maintenant, les questions:

  • Si tout est OK, je viens de retourner mon unmarshalled shibboleth de getPreAuthenticatedPrincipal()?
  • Si quelque chose ne va pas, dois-je viens de jeter un PreAuthenticatedCredentialsNotFoundException?
  • Que dois-je retourner de getPreAuthenticatedCredentials()? Est "N/A" suffisant?

Je suppose qu'à un certain moment, j'ai t créer un Authentication et un Principal.

  • Est-ce une bonne approche?
    Principal dynamicUser = new DynamicUser(rijksregisterNummer);
    List<SimpleGrantedAuthority> grantedAuthorities = Arrays.asList(new SimpleGrantedAuthority("ROLE_USER"));
    Authentication authentication = new AnonymousAuthenticationToken(rijksregisterNummer, dynamicUser, grantedAuthorities);
  • À ce point (dans la classe) dois-je mettre dans le Ressort de Sécurité?
  • Ce que les autres classes dois-je aller?
  • Comment dois-je configurer le Printemps de Sécurité XML de configuration? De cette façon? Ce qui me manque?
    <http>
      <custom-filter position="PRE_AUTH_FILTER" ref="myPreAuthFilter" />
    </http>
    
    <bean id="myPreAuthFilter" class="my.package.MyPreAuthenticationFilter">
      <property name="authenticationManager" ref="authenticationManager"/>
    </bean>
    
    <authentication-manager alias="authenticationManager">
      <authentication-provider ref="customAuthenticationProvider"/>
    </authentication-manager>

Des utilisateurs externes à aller par le biais de pré-authentification à l'aide d'une e-ID et le lecteur de carte) et d'appuyer sur notre application web. Interne, cependant, d'avoir à s'authentifier avec un uername et le mot de passe normal de la procédure d'authentification.

  • Comment puis-je le mettre en place que lorsqu'il n'y a pas un shibboleth (donc une connexion à partir de nos utilisateurs internes), je peux afficher un formulaire de connexion?

Beaucoup de question, je sais. J'espère que vous pourrez me guider.

Essayez de suivre ce tutoriel. Celui-ci est très bonne. krams915.blogspot.dans/2010/12/...
Instructif, mais malheureusement, elle n'explique pas comment utiliser un avant filtre d'authentification.
Avez-vous lu la ref manuel? Une combinaison de cela, le pré-auth exemple d'application et les différents de la boîte implémentations devrait vous donner plus de ce que vous avez besoin.

OriginalL'auteur Koohoolinn | 2013-11-25