PasswordEncoder 설정하기 기존의 {noop} 문자열을 더해줘서 Password encoding 하던 것을 Spring Security가 지원해주는 PasswordEncoder를 사용해보겠습니다. Bean 등록 Application.java @SpringBootApplication public class Application { @Bean public PasswordEncoder passwordEncoder() { return NoOpPasswordEncoder.getInstance(); } // 1 public static void main(String[] args) { SpringApplication.run(Application.class, args); } } PasswordEncoder를..
JPA와 Security 연동 이전의 문제점 매번 유저를 추가하는 일이 생길 경우 코드를 수정해야 한다. 수정, 삭제도 마찬가지로 코드를 수정해야 한다. -> 위와 같은 문제를 DB를 연동하여 유저 정보를 관리할 수 있도록 수정해보겠습니다. (JPA를 사용하겠습니다.) 개선 JPA 설정 dependency 추가 build.gradle dependencies { ... // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // H2 runtimeOnly 'com.h2database:h2' ... } class 생성 Account @Entity @Getter @Setter public class Account { @Id @..
Inmemory User 현재 기본으로 생성되는 유저와 패스워드 log를 확인해보면 UserDeatilsServiceAutoConfiguration에서 찍히는걸 확인할 수 있습니다. UserDetailsServiceAutoConfiguration.java User 정보는 SecurityProperties에서 가져오며 name, password, role을 설정 할 수 있습니다. yml 수정하여 기본 생성되는 유저 정보 변경하기 http://localhost:8080/login 에 접속하여 properties에 작성한 ID, Password를 입력해주면 기존처럼 접속이 가능합니다.. 문제점 유저 정보가 1개밖에 없다. 소스를 보면 어떤 유저정보가 있는지 확인할 수 있다. -> 그러므로 유저정보를 prope..
Spring Security Dependency build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' } 인증 가능 사용자 정보 알 수 있다. Security Setting SecurityConfig.java @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authoriz..
Team A에 속한 회원을 검색한다. @Test public void join() throws Exception { List result = queryFactory .selectFrom(member) .join(member.team, team) // leftJoin(), rightJoin() .where(team.name.eq("TEAM A")) .fetch(); assertThat(result) .extracting("username") .containsExactly("member1", "member2"); } native Query select member0_.member_id as member_i1_1_, member0_.age as age2_1_, member0_.team_id as team_id..
안녕하세요. 오늘은 페이징관련해서 포스팅해보겠습니다. 페이징을 할 땐 정렬을 해줘야한다. @Test public void paging1() throws Exception { List result = queryFactory .selectFrom(member) .orderBy(member.username.desc()) .offset(1) .limit(2) .fetch(); assertThat(result.size()).isEqualTo(2); } offset 으로 시작 지정 (0이 시작) limit 갯수 지정 Native Query select member0_.member_id as member_i1_1_, member0_.age as age2_1_, member0_.team_id as team_id4_1_..
이전 글 더보기 [Querydsl] 1. Querydsl 설정하기 [Querydsl] 2. H2 Database [Querydsl] 3. JPA yml 설정 [Querydsl] 4. 예제용 도메인 생성 [Querydsl] 5. JPQL vs Querydsl 비교 [Querydsl] 6. Querydsl Where절 안녕하세요. Querydsl에서 다양한 결과 조회를 하는 방법을 포스팅해보겠습니다. - 단순 리스트 조회 List fetch = queryFactory .selectFrom(member) .fetch(); - Limit 1 Member member2 = queryFactory .selectFrom(QMember.member) .fetchFirst(); - Paging QueryResults r..
안녕하세요. 이전에 만든 Entity를 CompileQuerydsl 하여 QType Class를 만들어줍니다. QuerydslBasicTest.java @SpringBootTest @Transactional public class QuerydslBasicTest { @Autowired EntityManager em; JPAQueryFactory queryFactory; @BeforeEach public void before() { queryFactory = new JPAQueryFactory(em); // 동시성 문제 해결됩니다. Team teamA = new Team("TEAM A"); Team teamB = new Team("TEAM B"); em.persist(teamA); em.persist(te..
- Total
- Today
- Yesterday
- spring web
- java11
- mapstruct
- ubuntu
- Python
- howtoinstallnginx
- QueryDSL
- Spring
- ControllerAdvice
- 스프링
- paawordencoder
- like절
- FastAPI
- springboot
- Security
- API
- springsecurity
- 스프링시큐리티
- booleanExpression
- 자바
- @formula
- 스프링부트
- boot
- 스프링부트 시작하기
- 웹서비스
- Java
- ResourceHttpReqeustHandler
- JPA
- 개발
- 유사결과
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |