usted tiene que combinar todas las respuestas en esta página.
- Teja es correcto, no hay una manera facilitada de agregar un usuario sobre la marcha.
- Axtavt también es correcto. Necesita algún tipo de capa de acceso/servicio de datos para actualizar su tabla de usuarios. En otras palabras, necesita crear la vista como cualquier otra página con algún tipo de acceso de súper usuario.
- Michal y ax le aconsejan que probablemente necesite codificar su contraseña antes de guardarla. El resumen debe coincidir con lo que estés usando cuando recuperes las credenciales.
He aquí un ejemplo config mediante JDBC:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.1.xsd">
<global-method-security secured-annotations="enabled"/>
<http auto-config="true" access-denied-page="/accessDenied.jsp">
<!-- login page has anonymous access -->
<intercept-url pattern="/login.jsp*" filters="none"/>
<!-- all pages are authenticated -->
<intercept-url pattern="/**.action" access="ROLE_USER, ROLE_ADMIN" />
<!-- all admin contextual pages are authenticated by admin role -->
<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
<form-login authentication-failure-url="/login.jsp?login_error=1" default-target-url="/index.action" login-page="/login.jsp"/>
<logout logout-success-url="/index.action"/>
</http>
<authentication-provider>
<password-encoder hash="md5" />
<jdbc-user-service data-source-ref="dataSource"
authorities-by-username-query="SELECT username, role AS authority FROM sweet_users WHERE username = ?"
users-by-username-query="SELECT username, password, 1 AS enabled FROM sweet_users WHERE username = ?" />
</authentication-provider>
</beans:beans>
Se trata de utilizar una consulta personalizada para obtener los usuarios. Spring Security espera una tabla de usuarios con nombre de usuario, contraseña y columna de autoridad, respectivamente, así que haga lo que debe hacer para devolverlos. Debe proporcionar la fuente de datos.
Si ha creado una página para añadir usuarios bajo el admin/contexto, sería ser autenticado de acuerdo con esta configuración.
Añadir un grano para su UserDao y/o UserService y/o AuthenticationService y pasarlo a su controlador de Usuarios ...
Gracias - lo que, básicamente, la forma correcta sería la de actualizar solo las tablas de seguridad apropiadas usando la primavera mis DAOs? – james
Sí. debe tener un controlador/proceso separado para manejar el registro –