Spring MVC - Не могу войти - PullRequest
       0

Spring MVC - Не могу войти

0 голосов
/ 11 февраля 2020

Я некоторое время работал над этой страницей входа, пытаясь заставить ее работать, но я не знаю, как исправить эту последнюю ошибку.

У меня есть алгоритм кодирования bCrypt для моей БД соединена с JDB C, и даже когда я ввожу правильный пароль, я продолжаю перенаправляться на путь ошибки / login? *

JSP Страница:

<form:form method="post" modelAttribute="user"
                action="${pageContext.request.contextPath}/processLogin">

                <div class="form-group">
                    <div class="form-label-group">
                        <label for="inputUser">Username: </label> <input name="username"
                            type="text" path="username" id="inputUser" class="form-control"
                            placeholder="Username" required="required" autofocus="autofocus">
                    </div>
                </div>

                <div class="form-group">
                    <div class="form-label-group">
                        <label for="inputPassword">Password: </label> 
                        <input name="username" type="password" path="password"
                            id="inputPassword" class="form-control" placeholder="Password"
                            required="required">
                    </div>
                </div>

                <div class="form-group">
                    <div class="checkbox">
                        <label> <input type="checkbox" value="remember-me">
                            Remember Password
                        </label>
                    </div>
                </div>

                <input type="submit" value="Login"/>

            </form:form>

Контроллер входа :

@GetMapping("/login")
public String showLoginForm(Model model) {

    User user = new User();
    model.addAttribute("user", user);

    return "login";
}

@PostMapping("/processLogin")
public String processLogin(@ModelAttribute("user") User user, Model model) {

    if (userService.findUser(user.getUsername(), user.getPassword()) != null) {
        return "/management/dashboard";
    } else {
        return "/access-denied";
    }
}

Пользователь DAO:

public class UserDAOImpl implements UserDAO {

@Autowired
private SessionFactory sessionFactory;

@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;

@Override
@Transactional
public User findUser(String username, String password) {

    Session session = sessionFactory.getCurrentSession();

    session.beginTransaction();

    password = bCryptPasswordEncoder.encode(password);

    Query<User> theQuery = session.createQuery("from users where username=:username and password=:password",
            User.class);

    if (theQuery.getSingleResult() != null) {
        User user = theQuery.getSingleResult();
        session.close();
        return user;
    } else {
        session.close();
        return null;
    }
}

Настройка безопасности:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private DataSource securityDataSource;

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.jdbcAuthentication().dataSource(securityDataSource).passwordEncoder(passwordEncoder());
}

@Override
protected void configure(HttpSecurity http) throws Exception {

    http.authorizeRequests().antMatchers("/management/**").authenticated().and().formLogin().loginPage("/login")
            .loginProcessingUrl("/processLogin").defaultSuccessUrl("/management/dashboard").permitAll();

    http.exceptionHandling().accessDeniedPage("/access-denied");

}

@Bean
@Autowired
public BCryptPasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...