본문 바로가기

전체 글231

spring security를 알아보자 - 6 Jpa를 사용해보자. Customer 엔티티와, CustomerRepository를 만들어주자. CustomerRepository는 CrudRepository를 extends한다. @Repository public interface CustomerRepository extends CrudRepository { } 에서 Customer는 어느테이블에 속하는 리포지토리인지, Long은 PrimaryKey의 타입을 적어준것이다. 그리고 레포지토리나 엔티티가 메인 애플리케이션 밖에 존재한다면 @EnableJpaRepositories, @EntityScan를 붙혀준다. 하지만 나는 안에 존재하기때문에 알아서 적용된다. 이제 loadUserByUsername을 사용하기위해 UserDetailsService를 imp.. 2024. 3. 25.
방문길이 처음가본길만을 구하는 문제이므로, 중복되는 길은 선택하지 않는다는의미. 처음엔 최종적으로 위치해있는 지점의 x축 절댓값 + y축 절댓값을 더하면된다생각했는데 그건 아니었다. 어떻게 접근해야할까? 이동할때마다의 좌표를 저장하고 cnt를 ++ 해주면서, 저장된 좌표로 다시 이동하게되면 cnt를 해주지않고 넘어가는 방식으로 해야하나 싶다. 그런데 문제는 파라미터로 주어지는 dirs의 길이는 500이하다. 최대 500번의 좌표를 저장하게되면 런타임에러가 발생하지 않을까 싶다. 일단 한번 이렇게 해보겠다. 수도코드를 짜보자. // 먼저 (x,y)좌표를 나타낼 길이가 2인 int형 배열 xy를 초기화해주자. int[] xy = new int[2]; // 그다음 xy의 history를 담을 리스트로 ArrayList.. 2024. 3. 22.
spring security를 알아보자 - 5 UserDetailsManager를 구현하는클래스를 알아보자. ㅇ InMemoryUserDetailsManager public void createUser(UserDetails user) { Assert.isTrue(!this.userExists(user.getUsername()), "user should not exist"); this.users.put(user.getUsername().toLowerCase(), new MutableUser(user)); } public void deleteUser(String username) { this.users.remove(username.toLowerCase()); } public void updateUser(UserDetails user) { Assert.i.. 2024. 3. 21.
spring security를 알아보자 - 4 여태까진 application.properties 에서 한명의 유저만 설정했기때문에 추가적인 유저를 만들수 있게 향상해야한다. 애플리케이션 메모리안에 다수의 유저를만들게 해보자. ㅇ 인메모리상 유저를 생성하자 웹애플리케이션 메모리 내에 유저를 생성하자. **이방법은 깃헙으로 볼수있기때문에 안전한 방법은 아님. ProjectSecurityConfig에 @Bean public InMemoryUserDetailsManager userDetailsService() { UserDetails admin = User.withDefaultPasswordEncoder() .username("admin") .password("12345") .authorities("admin") .build(); UserDetails us.. 2024. 3. 18.