2016-08-12 16 views
0

私たちはSpring MVC 4.0を使用していますが、データベースに対してユーザーを認証することはできません。Spring MVCがデータベースと認証されていない

Pagresの認証は正常ですが、有効なユーザーとのログインはできません。すべてのユーザーはアプリケーションに参加できますが、データベースには存在しません。

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.justinfact.web.*") 
public class WebConfig extends WebMvcConfigurerAdapter { 
private UsuarioDAO usuarioDAO; 
private CatalogosDAO catalogosDAO; 
private CFEDAO cfeDAO; 

/** 
* Registra la base de datos de backend, creando un connection pool. 
* 
* @return DataSource 
*/ 
@Bean 
public DataSource dataSource() { 
    BasicDataSource basicDataSource = new BasicDataSource(); 
    basicDataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
    basicDataSource.setUrl("jdbc:mysql://localhost:3306/db"); 
    basicDataSource.setUsername("xxxxx"); 
    basicDataSource.setPassword("xxxxx"); 
    basicDataSource.setInitialSize(5); 
    basicDataSource.setMaxActive(10); 
    basicDataSource.setAccessToUnderlyingConnectionAllowed(true); 
    return basicDataSource; 
} 

/** 
* Se registra el template para trabajar con JDBC 
* 
* @return JdbcTemplate 
*/ 
@Bean 
public JdbcTemplate jdbcTemplate(DataSource dataSource) { 
    return new JdbcTemplate(dataSource); 
} 

でもデータソース構成は正常に動作していますが、クエリが実行されていないようです。私たちは、クエストをテストし、私たちのために正常に動作します。

<div class="contenedor"> 
    <img src="<s:url value='resources' />/images/logo.jpg"  width="220" height="90" border="0" /> 
<h1> 
    Acceso Sistema 
</h1> 

<br> 
<c:url value="login" var="loginURL"/> 
<sf:form id="homeForm" action="${loginURL}" method="POST" commandName="user"> 
    <c:if test="${param.error != null}"> 
     <p>Usuario o clave incorrecta</p> 
    </c:if> 
    <c:if test="${param.logout != null}"> 
     <p>Ha salido correctamente de la aplicación</p> 
    </c:if> 
    <div class="div_form"> 
     <sf:input path="rut" placeholder="RUT empresa"/> 
    </div> 
    <div class="div_form"> 
     <sf:input path="username" placeholder="nombre de usuario"/><sf:errors path="username" /> 
    </div> 
    <div class="div_form"> 
     <sf:password path="password" placeholder="contraseña"/> 
    </div> 
    <div><a id="ingresar" href="#">Acceder</a></div> 
    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /> 
</sf:form> 

そして、私たちは、この操作を管理するための基本的なコントローラのファイルがあります:ログインページは、標準の一つであり、我々は間違った方法をやっている

@Controller 
public class HomeController { 

private static final Logger logger = LoggerFactory.getLogger(HomeController.class); 


/** 
* Simply selects the home view to render by returning its name. 
*/ 
@RequestMapping(value = "home", method = RequestMethod.GET) 
public String home(Locale locale, Model model) { 
    logger.info("Welcome home! The client locale is {}.", locale); 

    /* 
    Date date = new Date(); 
    DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); 
    String formattedDate = dateFormat.format(date); 
    model.addAttribute("serverTime", formattedDate); 
    */ 
    model.addAttribute("user",new Login()); 
    return "home"; 
} 

/** 
* Realiza la gestión de la operación de login/acceso al sistema con usuario y clave. 
* 
* @param user 
* @param model 
* @return 
*/ 
@RequestMapping(value = "login", method = RequestMethod.POST) 
public String login(@Valid Login user, Model model, Errors errors) { 
    logger.info("en Login"); 
    logger.info(errors.toString()); 
    logger.info(user.toString()); 
    System.out.println(user); 
    model.addAttribute("user", user); 
    return "login"; 
} 
} 

を?事前解決

+0

例外はありますか? – kuhajeyan

+0

btw、anyRequest() - anyRequest()。hasAnyRole( "ROLE_USER、ANONYMOUS")に 'anonymus'を指定してもよろしいですか? – kuhajeyan

+0

例外はありません。次のページに移動する代わりに、ユーザーは無効です。私はSpring Securityで "/ login"アクションをどこで使うべきか、それを呼び出す方法はわかりません – user1748166

答えて

0

おかげで、

一つの問題は、私は春のセキュリティから、デフォルトのログインアクションを上書きし、私のコントローラでPOSTと「/ログイン」アクションを、持っていました。今はいくつかの変更が加えられています。

ありがとうございました

関連する問題