Commit 2c83df65 authored by keita.onoguchi's avatar keita.onoguchi

ログイン機能追加

parent 921dcefa
......@@ -21,14 +21,14 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter{
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.mvcMatchers("/signup", "/limited/login").permitAll()
.mvcMatchers("/limited/login").permitAll()
.mvcMatchers("/limited/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginProcessingUrl("/login")
.loginProcessingUrl("/login")
.loginPage("/limited/login")
.defaultSuccessUrl("/top")
.defaultSuccessUrl("/limited/top", true)
.usernameParameter("email").passwordParameter("password")
.and()
.logout()
......
......@@ -2,7 +2,6 @@ package com.example.domain;
import java.sql.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
......@@ -10,38 +9,26 @@ import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.Getter;
import lombok.Setter;
//ログイン用のエンティティークラス
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name="users")
@ToString(exclude = { "email", "password" })
@Getter
@Setter
public class User {
@Id
@GeneratedValue
private int id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private String postalCode;
@Column(nullable = false)
private String address;
@Column(nullable = false)
private String phoneNumber;
@Column(nullable = false)
private String email;
@Column(nullable = false)
@JsonIgnore
private String password;
@Column(nullable = false)
private String roles;
@Column(nullable = false)
private Date createdAt;
@Column(nullable = false)
private Date updatedAt;
}
......@@ -4,6 +4,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
import com.example.domain.User;
public interface UserRepository extends JpaRepository<User, String>{
public interface UserRepository extends JpaRepository<User, Integer>{
User findByEmail(String email);
}
package com.example.service;
import java.util.Collection;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import com.example.domain.User;
//ユーザーの認証・認可にかかわるクラス
public class LoginUser extends org.springframework.security.core.userdetails.User{
private static final long serialVersionUID = 1L;
private User user;
private final User user;
public LoginUser(User user){
super(user.getEmail(), user.getPassword(), AuthorityUtils.createAuthorityList(user.getRoles()));
this.user = user;
}
/*public User getUser() {
public User getUser() {
return user;
}*/
}
/*static Set<GrantedAuthority> convertGrantedAuthorities(String roles){
if(roles == null || roles.isEmpty()){
return Collections.emptySet();
private Collection<GrantedAuthority> getAuthorities(String role) {
if (role.equals("ADMIN")) {
return AuthorityUtils.createAuthorityList("ROLE_ADMIN", "ROLE_GENERAL");
} else {
return AuthorityUtils.createAuthorityList("ROLE_GENERAL");
}
Set<GrantedAuthority> authorities = Stream.of(roles.split(","))
.map(SimpleGrantedAuthority::new)
.collect(Collectors.toSet());
return authorities;
}*/
}
}
......@@ -55,11 +55,11 @@
<form id="login-form" method="post" th:action="@{/login}">
<div id="email-form">
<label for="login-email">Email</label>
<input type="email" class="login" id="login-email" placeholder="Email" required="required"/>
<input type="email" class="login" name="email" id="login-email" placeholder="Email" required="required"/>
</div>
<div id="password-form">
<label for="login-password">Password</label>
<input type="password" class="login" id="login-password" placeholder="Password" required="required"/>
<input type="password" class="login" name="password" id="login-password" placeholder="Password" required="required"/>
</div>
<div id="submit-form">
<input type="submit" class="login" id="btn" value="Login"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment