Light Purple Pointer
질문 수정 처리
·
BACKEND/SpringBoot
Question와 Answer에 수정일시 추가 private LocalDateTime modifyDate;// 수정일시 DB확인하기 question_detail.html 추가 인증된 사람만 볼 수 있고, 글쓴이가 현재 로그인 중 인 user와 같을 때 테스트하기 수정 클릭하면 아래와 같은 오류가 뜸 QuestionController //질문 수정하기 @PreAuthorize("isAuthenticated()")//인증된 사람만 사용 가능하다 @GetMapping("/modify/{id}") public String questionModify(QuestionForm questionForm, @PathVariable("id") int id, Principal principal,Model model) { Qu..
엔티티 변경 글쓴이 추가 및 글 목록,상세보기,답변에 반영하기
·
BACKEND/SpringBoot
Question 속성 추가 Question @ManyToOne private SiteUser author; //질문자 질문자 (유저) 한명에 많은 질문 Answer @ManyToOne private SiteUser author; //질문자 DB확인하기 ANSWER과 QUESTION 에 둘 다 AUTHOR_ID 추가 확인 AnswerController 에서 작성자를 추가한다 이미 세션에 정보를 저장하고 있는데, 그 정보를 가지고 오면 됨 @PostMapping("/create/{id}") public String createAnswer(Model model, @PathVariable("id") Integer id, @Valid AnswerForm answerForm, BindingResult binding..
로그아웃 처리
·
BACKEND/SpringBoot
pom.xml 에 추가 org.thymeleaf.extras thymeleaf-extras-springsecurity5 현재 로그인이 되어있는 중이면 네브바에 로그아웃만 보이고, 로그인이 안되어있으면 로그인/회원가입 보임 로그인 로그아웃 회원가입 현재 로그아웃 클릭 시 에러가 발생한다. SecurityConfig에서 간단하게 로그아웃 처리 가능함 아래의 내용 추가 .and() .logout() .logoutRequestMatcher(new AntPathRequestMatcher("/user/logout")) .logoutSuccessUrl("/") .invalidateHttpSession(true) ; 로그아웃을 위한 설정을 추가했다. 로그아웃 URL을 /user/logout으로 설정하고 로그아웃이 성공..
로그인 구현
·
BACKEND/SpringBoot
로그인 URL 등록 먼저 스프링 시큐리티에 로그인 URL을 등록 public class SecurityConfig { @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests().antMatchers("/**").permitAll() .and() .csrf() .ignoringAntMatchers("/h2-console/**") .and() .headers() .addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN)) .and() .formLogin() ..
회원가입 처리(유효성검사, 비밀번호 암호화, 중복회원가입처리)
·
BACKEND/SpringBoot
package com.mysite.sbb.user; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import lombok.Getter; import lombok.Setter; @Getter @Setter @Entity public class SiteUser { @Id //기본키 @GeneratedValue(strategy = GenerationType.IDENTITY) //자동 증가 private Long id;//long타입(int보다..
스프링 시큐리티
·
BACKEND/SpringBoot
스프링 시큐리티는? 스프링 기반 애플리케이션의 인증과 권한을 담당하는 스프링의 하위 프레임워크이다. 인증(Authenticate)은 로그인을 의미한다. 권한(Authorize)은 인증된 사용자가 어떤 것을 할 수 있는지를 의미한다. 시큐리티 추가하기 추가 된 상태로 바로 서버를 실행해서 확인하면 이렇게 뜬다. 로그인 창을 출력한다. 시큐리티의 인증임 인증되지 않은 사용자는 서비스를 사용 할 수 없게 함 아이디는 user 콘솔에 뜨는 임시 패스워드로 로그인이 가능함 하지만 이 방법은 비 회원인 사람은 아무런 사용을 할 수 없으므로 설정을 바꿈 로그인 없이도 게시물을 조회할 수 있어야 함 SecurityConfig 클래스 생성 @Configuration은 스프링이 관리하는 @Bean설정을 할 수 있게 함 @..
답변 개수 표시
·
BACKEND/SpringBoot
question_list.html에 span태그 추가해서 답변 개수가 출력되도록 한다. 0보다 답변이 많으면 리스트의 사이즈를 출력하라는 조건문 줌 테스트하기
게시물에 일련번호 추가하기
·
BACKEND/SpringBoot
html 수정
페이징
·
BACKEND/SpringBoot
drop table answer drop table question 으로 테이블 삭제함 @Autowired private QuestionService qService; for(int i =1; i 마지막으로 작성일시를 역순으로(desc)로 조회하게 수정할거임 QuestionService- getlist public Page getList(int page){ Pageable pageable = PageRequest.of(page, 10, Sort.by("createDate").descending()); //한 페이지에 10개 return this.qRepo.findAll(pageable); //모든 질문 리스트 } deata.domain Sort 작성일자로 내림차순 첫페이지는 300부터 나옴
에러 창 , 네브바 모듈화
·
BACKEND/SpringBoot
question_form.html, question_detail.html 에 에러 폼 변경 테스트해보기 네비게이션 모듈화 SBB 로그인 모든 페이지에 추가 하지만 화면이 작아졌을 때 오른쪽 위 토글 버튼이 눌러지지 않음 -> js가 없어서 그럼 아까 다운로드 받은 부트스트랩 폴더에서 해당 파일을 넣어줌 head에 추가 테스트하기 - 토글 버튼 누르면 내려오는지