Wie passen Sie die Eigenschaften BenutzernamePasswordAuthenticationFilter Benutzername (j_username) und Kennwort (j_password) bei der Verwendung des Spring Safety 3-Namespace <http ... />
an? Es ist mein Verständnis der <http ... />
erstellt den Filter, aber ich sehe nicht, wie Sie es anpassen.Spring Security 3- Wie man Benutzername/Passwort-Parameter anpassen?
Antwort
Hier beschreiben, ist die Lösung, die ich auf axtavt Vorschlag basiert erstellt:
Spring-Konfiguration:
<beans:bean id="userPassAuthFilterBeanPostProcessor"
class="com.my.package.UserPassAuthFilterBeanPostProcessor">
<beans:property name="usernameParameter" value="username" />
<beans:property name="passwordParameter" value="password" />
</beans:bean>
Java-Klasse:
package com.my.package;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.security.web.authentication.
UsernamePasswordAuthenticationFilter;
public class UserPassAuthFilterBeanPostProcessor implements BeanPostProcessor {
private String usernameParameter;
private String passwordParameter;
@Override
public final Object postProcessAfterInitialization(final Object bean,
final String beanName) {
return bean;
}
@Override
public final Object postProcessBeforeInitialization(final Object bean,
final String beanName) {
if (bean instanceof UsernamePasswordAuthenticationFilter) {
final UsernamePasswordAuthenticationFilter filter =
(UsernamePasswordAuthenticationFilter) bean;
filter.setUsernameParameter(getUsernameParameter());
filter.setPasswordParameter(getPasswordParameter());
}
return bean;
}
public final void setUsernameParameter(final String usernameParameter) {
this.usernameParameter = usernameParameter;
}
public final String getUsernameParameter() {
return usernameParameter;
}
public final void setPasswordParameter(final String passwordParameter) {
this.passwordParameter = passwordParameter;
}
public final String getPasswordParameter() {
return passwordParameter;
}
}
Der Filter wird mit dem Element form-login konfiguriert, aber dieses Element bietet keine Möglichkeit, benutzerdefinierte Namen für Benutzername und Kennwort festzulegen.
Sie können direkt konfigurieren, wie in Spring Reference
Ich benutze den Namespace
Sie können Fehler im Frühling JIRA melden, um die erforderliche Konfiguration hinzuzufügen. – uthark
Klingt wie das ist, was ich tun muss. Ich werde eine Feature-Anfrage senden. –
Ich habe eine Feature-Anfrage für diese eingereicht: http://jira.springframework.org/browse/SEC-1445 –