This commit is contained in:
2025-05-12 17:34:26 +09:00
17 changed files with 52 additions and 83 deletions

View File

@ -1,5 +1,2 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8

View File

@ -21,11 +21,11 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
@Configuration
public class SecurityConfig {
private final JwtAuthenticationFilter jwtAuthenticationFilter;
//private final JwtAuthenticationFilter jwtAuthenticationFilter;
private final UserDetailsService userDetailsService;
public SecurityConfig(@Lazy JwtAuthenticationFilter jwtAuthenticationFilter, @Lazy UserDetailsService userDetailsService) {
this.jwtAuthenticationFilter = jwtAuthenticationFilter;
//this.jwtAuthenticationFilter = jwtAuthenticationFilter;
this.userDetailsService = userDetailsService;
}
@ -47,16 +47,28 @@ public class SecurityConfig {
return authenticationConfiguration.getAuthenticationManager();
}
// @Bean
// public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
// http.csrf(AbstractHttpConfigurer::disable)
// .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
// .authorizeHttpRequests(auth -> auth
// .requestMatchers("/api/user/login", "/api/user/register").permitAll()
// .anyRequest().authenticated()
// )
// .authenticationProvider(authenticationProvider())
// .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
//
// return http.build();
// }
@Bean
//暂时开放所有权限
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.csrf(AbstractHttpConfigurer::disable)
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth
.requestMatchers("/api/user/login", "/api/user/register").permitAll()
.anyRequest().authenticated()
)
.authenticationProvider(authenticationProvider())
.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
.anyRequest().permitAll()
);
return http.build();
}

View File

@ -1,10 +1,8 @@
package co.jp.app.controller;
import co.jp.app.common.ApiResponse;
import co.jp.app.dto.LoginDto;
import co.jp.app.dto.RegistrationDto;
import co.jp.app.service.JwtService;
import jakarta.validation.Valid;
import java.util.HashMap;
import java.util.Map;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.authentication.AuthenticationManager;
@ -13,15 +11,18 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import co.jp.app.entity.ErrorEntity;
import co.jp.app.common.ApiResponse;
import co.jp.app.dto.LoginDto;
import co.jp.app.dto.RegistrationDto;
import co.jp.app.entity.UserEntity;
import co.jp.app.service.ErraService;
import co.jp.app.service.JwtService;
import co.jp.app.service.UserService;
import java.util.HashMap;
import java.util.Map;
import jakarta.validation.Valid;
@RestController
@RequestMapping("/api/user")

View File

@ -1,13 +1,12 @@
package co.jp.app.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
import java.util.Optional;
import co.jp.app.entity.UserEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
import co.jp.app.entity.UserEntity;
@Repository
public interface UserRepository extends JpaRepository<UserEntity, Integer> {

View File

@ -1,18 +0,0 @@
package co.jp.app.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.Param;
import co.jp.app.entity.UserEntity;
public interface userRepository extends JpaRepository<UserEntity, Integer> {
public default UserEntity getByName(@Param("name") String name) {
return getByName(name);
}
public default UserEntity getByEmail(@Param("email")String email) {
return getByEmail(email);
}
}

View File

@ -1,22 +1,8 @@
package co.jp.app.service;
<<<<<<< HEAD
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import co.jp.app.entity.UserEntity;
import co.jp.app.repository.userRepository;
import jakarta.transaction.Transactional;
=======
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import co.jp.app.dto.RegistrationDto;
import co.jp.app.entity.UserEntity;
import co.jp.app.repository.UserRepository;
import org.jetbrains.annotations.NotNull;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@ -26,39 +12,28 @@ import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import co.jp.app.entity.PetEntity;
import co.jp.app.repository.UploadRepository;
import org.springframework.transaction.annotation.Transactional;
>>>>>>> 34de018ef0606dec4f6de48c8cc5c3f073a1fdc6
import co.jp.app.dto.RegistrationDto;
import co.jp.app.entity.UserEntity;
import co.jp.app.repository.UserRepository;
@Service
public class UserService implements UserDetailsService {
<<<<<<< HEAD
private final userRepository userEntityRepository;
@Autowired
public UserService(userRepository userEntityRepository, PasswordEncoder passwordEncoder )
{
this.userEntityRepository = userEntityRepository;
this.passwordEncoder= passwordEncoder;
=======
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
public UserService(UserRepository userRepository, PasswordEncoder passwordEncoder) {
this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder;
>>>>>>> 34de018ef0606dec4f6de48c8cc5c3f073a1fdc6
}
@Transactional
public UserEntity registerNewUser(@NotNull RegistrationDto registrationDto) throws Exception {
if (userRepository.existsByEmail(registrationDto.getEmail())) {
throw new Exception("エラー:メール:" + registrationDto.getEmail() + " はすでに登録されました。");
throw new Exception("error: Email" + registrationDto.getEmail() + " had been used");
}
UserEntity newUser = new UserEntity();
@ -75,16 +50,17 @@ public class UserService implements UserDetailsService {
UserEntity userEntity = userRepository.findByEmail(email)
.orElseThrow(() -> new UsernameNotFoundException(email + " not found"));
Collection<? extends GrantedAuthority> authorities = Collections.singletonList(new SimpleGrantedAuthority("ROLE_USER")); // 示例给所有用户一个ROLE_USER权限
Collection<? extends GrantedAuthority> authorities = Collections
.singletonList(new SimpleGrantedAuthority("ROLE_USER"));
return new User(
userEntity.getEmail(),
userEntity.getPassword(),
true, // enabled
true, // accountNonExpired
true, // credentialsNonExpired
true, // accountNonLocked
authorities // 用户的权限集合
true, // enabled
true, // accountNonExpired
true, // credentialsNonExpired
true, // accountNonLocked
authorities // role
);
}
}
}

2
target/classes/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/META-INF/
/co/

View File

@ -1,6 +1,6 @@
#Generated by Maven Integration for Eclipse
#Mon May 12 14:19:16 JST 2025
m2e.projectLocation=C\:\\Users\\ichbi\\OneDrive\\\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\\dog-1
#Mon May 12 15:57:02 JST 2025
m2e.projectLocation=C\:\\Users\\Administrator\\git\\Dog-1
m2e.projectName=dog-1
groupId=co.jp.app
artifactId=dog-2