Je n'arrive pas à trouver comment obtenir une référence au SessionRegistry de Spring Security (V3) dans une action struts.Comment obtenir le SpringSecurity SessionRegistry?
J'ai configuré l'auditeur à l'intérieur de mon fichier web.xml:
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
Et j'ai essayé d'utiliser l'annotation @Autowired pour le mettre en une action:
@Autowired
private SessionRegistry sessionRegistry;
@Override
public String execute() throws Exception {
numberOfUsersLoggedin= sessionRegistry.getAllPrincipals().size();
return SUCCESS;
}
public SessionRegistry getSessionRegistry() {
return sessionRegistry;
}
public void setSessionRegistry(SessionRegistry sessionRegistry) {
this.sessionRegistry = sessionRegistry;
}
La configuration http ressemble à ceci:
<session-management invalid-session-url="/public/login.do?login_error=expired"
session-authentication-error-url="/public/login.do"
session-fixation-protection="newSession">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
</session-management>
Généralement, je suis plus à l'aise de câbler moi-même la fève, acheter pas sûr comment cela est exposé en utilisant l'espace de noms. Chaque fois que l'action s'exécute, le registre de session est nul. Est-ce que quelqu'un peut signaler ce que je fais mal ici, ou me montrer le chemin à un exemple?
Merci d'avance pour toutes les réponses!
merci pour le lien. J'ai ajouté le bean sessionRegistry à ma configuration Spring, et ce n'est plus nul dans l'action Struts. Toutefois, lorsque j'essaie d'obtenir le # d'utilisateurs connectés (lors de la connexion), la valeur de sessionRegistry.getAllPrincipals(). Size(); est toujours 0. Suis-je en train de lire les docs? Il me semble que si j'utilise un formulaire de connexion personnalisé (que je m'authentifie avec LDAP), je ne peux pas utiliser la gestion de session namespace/auto config que j'ai spécifiée ci-dessus. Il semble que je dois manuellement configurer tous les gestion de session et contrôle de concurrence manuellement? – Griff
En regardant les documents en ligne, je n'arrive pas à comprendre quel est le nom de mon fournisseur d'authentification pour myAuthFilter. J'utilise l'espace de nommage qui ne fournit pas un identifiant de bean ... \t authentication-manager> –
Griff