tutorial example español ejemplo java jquery spring login spring-security

java - example - Página de inicio de sesión de Spring Security



spring security tutorial (2)

Hay cuatro requisitos para una página de inicio de sesión personalizada en Spring Security:

  1. Hay un campo de entrada llamado j_username que contendrá el nombre utilizado para las credenciales de autenticación.
  2. Hay un campo de entrada llamado j_password que contendrá la contraseña utilizada para las credenciales de autenticación.
  3. La url a la que se POST estos valores coincide con la url definida en el atributo login-processing-url del elemento form-login en la configuración de Spring Security.
  4. La ubicación del formulario de inicio de sesión personalizado debe especificarse en el atributo de login-page de form-login elemento form-login en su configuración de Spring Security.

Login.html

<body> <form action="/j_spring_security_check" method="POST"> <label for="username">User Name:</label> <input id="username" name="j_username" type="text"/> <label for="password">Password:</label> <input id="password" name="j_password" type="password"/> <input type="submit" value="Log In"/> </form> </body>

Archivo de configuración de seguridad de primavera

<http use-expressions="true"> <intercept-url pattern="/login*" access="isAnonymous()"/> <intercept-url pattern="/**" access="isFullyAuthenticated()"/> <form-login login-page="/login.html" login-processing-url="/j_spring_security_check.action" authentication-failure-url="/login_error.html" default-target-url="/home.html" always-use-default-target="true"/> </http>

Desarrollé una aplicación que usa la página de inicio de sesión predeterminada de Spring Security. Sin embargo, quiero implementar mi propia página de inicio de sesión. Voy a poner un login.html en lugar de una página jsp. Quiero usar JQuery para eso. Examiné muchos ejemplos pero no pude lograrlo. Soy nuevo en Spring and Spring Security, utilizo Spring Security 3. ¿Alguna idea de qué pasos debo seguir?


He estado trabajando durante un par de días para implementar la seguridad de primavera en mi proyecto y la configuración que finalmente lo hizo fue la siguiente:

spring-security.xml

<security:http auto-config="true" disable-url-rewriting="true" use-expressions="true"> <security:form-login login-page="/login.html" login-processing-url="/j_spring_security_check.action" default-target-url="/index.html" always-use-default-target="true" authentication-failure-url="/login.html?error=true" /> <security:intercept-url pattern="/login*" access="isAnonymous()" /> <security:intercept-url pattern="/**" access="hasRole(''ROLE_USER'')" /> </security:http> <security:authentication-manager> <security:authentication-provider> <security:jdbc-user-service data-source-ref="dataSource" users-by-username-query="select username, password, enabled from smartcaldb.users where username=?" authorities-by-username-query="select u.username, r.authority from smartcaldb.users u, smartcaldb.roles r where u.userid = r.userid and u.username =?" /> </security:authentication-provider> </security:authentication-manager>

spring-config.xml

<mvc:annotation-driven /> <context:component-scan base-package="com.smartcal.**" /> <!-- setup database connectivity bean --> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <context:property-placeholder location="/WEB-INF/jdbc.properties" /> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <constructor-arg ref="dataSource"/> </bean>

web.xml

<welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/spring-config.xml /WEB-INF/spring-security.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/login</url-pattern> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>contextAttribute</param-name> <param-value>org.springframework.web.context.WebApplicationContext.ROOT</param-value> </init-param> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <error-page> <error-code>403</error-code> <location>/403</location> </error-page>

login.html

<body> <form action="/smartcal/j_spring_security_check.action" method="POST"> <label for="username">User Name:</label> <input id="username" name="j_username" type="text" /> <label for="password">Password:</label> <input id="password" name="j_password" type="password" /> <input type="submit" value="Log In" /> </form> </body>

para desconectarse use url - "/ {yourAppPathInTheContainer} / j_spring_security_logout"