簡體   English   中英

Spring Security登錄不起作用

[英]Spring Security login don't work

我有一個應用程序,您可以使用您的用戶名和密碼登錄...,每個用戶都有一個角色。 我使用Hibernate ORM。

我的登錄機制不起作用,為此我使用了Spring Security。 這些是我的課程:

經理班:

package com.abt.fiifootballmanager.entity;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;

@Entity
@NamedQuery(name="Manager.findAll", query="SELECT m FROM Manager m")
public class Manager implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long managerId;

    private String email;

    private String password;

    private String username;

    @ManyToMany
    @JoinTable
    private List<Role> roles;
    //+getters and setters 
    }

角色類別:

@Entity
@Table(name="\"Role\"")
@NamedQuery(name="Role.findAll", query="SELECT r FROM Role r")
public class Role implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long roleId;

    private String role;

    @ManyToMany(mappedBy = "roles")
    private List<Manager> managers;
    //+getters and setters
}

這是來自security.xml的身份驗證管理器:

<authentication-manager>
    <authentication-provider>

        <jdbc-user-service data-source-ref="dataSource"
            authorities-by-username-query="select Manager.username, Role.role from Manager
                                           join Manager_Role on Manager.managerId = Manager_Role.MANAGERS_MANAGERID
                                           join Role on Manager_Role.roles_roleId = Role.roleId
                                           where Manager.username = ?"
            users-by-username-query="select username,password,enabled from Manager where name = ?" />

    </authentication-provider>

 <!-- because I use a many-to-many relationship, Hibernate create a new 
    table, named Manager_Role, with next columns: MANAGERS_MANAGERID and roles_roleId -->
</authentication-manager>

這是我的登錄表格:

    <form class="form-signin" role="form" action="<spring:url value="/j_spring_security_check" />" method="POST">
    <h2 class="form-signin-heading">Please sign in</h2>
    <input type="text" name="j_username" class="form-control" placeholder="Username" required autofocus> 
    <input type="password" name="j_password" class="form-control" placeholder="Password" required> 
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>

問題是,當我嘗試使用數據庫中的用戶名和密碼登錄時,沒有任何反應……並且不會引發異常。 我如何找出問題所在?

這不是Spring Security,您必須閱讀有關Spring Security的信息並了解其體系結構,還有一些實現和配置,請嘗試按照這些教程進行操作

http://keylesson.com/index.php/java-ee/spring-security/

http://www.mkyong.com/tutorials/spring-security-tutorials/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM