db
This commit is contained in:
parent
d8b303cf7b
commit
523ba9cc45
@ -76,7 +76,9 @@ public class SecurityConfig {
|
||||
http
|
||||
.securityMatcher("/api/**") // '/api/**' 경로에 대해서만 보안 적용
|
||||
.authorizeHttpRequests(auth ->
|
||||
auth.anyRequest().access(authorizationManager) // 모든 요청에 대해 권한 관리
|
||||
auth.requestMatchers("/api/board/general").permitAll() // 특정 엔드포인트 허용
|
||||
.anyRequest().authenticated() // 나머지 요청은 인증 필요
|
||||
//auth.anyRequest().access(authorizationManager) // 모든 요청에 대해 권한 관리
|
||||
)
|
||||
// 세션 관리 설정
|
||||
.sessionManagement(session ->
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package io.company.localhost.controller.api;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.sql.Blob;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -37,7 +39,18 @@ public class BoardController {
|
||||
@GetMapping("/general")
|
||||
public ApiResponse<List<Map<String, Object>>> getGeneralPosts() {
|
||||
List<Map<String, Object>> posts = boardService.getGeneralPosts();
|
||||
System.out.println(posts);
|
||||
for (Map<String, Object> post : posts) {
|
||||
Object content = post.get("content");
|
||||
if (content instanceof Blob) {
|
||||
Blob blob = (Blob) content;
|
||||
try {
|
||||
post.put("content", new String(blob.getBytes(1, (int) blob.length()), StandardCharsets.UTF_8));
|
||||
} catch (Exception e) {
|
||||
post.put("content", ""); // 변환 실패 시 기본 값 설정
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println(posts);
|
||||
return ApiResponse.ok(posts);
|
||||
}
|
||||
//게시물 작성
|
||||
|
||||
@ -6,6 +6,8 @@ import java.util.Map;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import io.company.localhost.common.dto.MapDto;
|
||||
|
||||
@Mapper
|
||||
public interface LocalBordMapper {
|
||||
// 공지사항 조회
|
||||
@ -15,37 +17,37 @@ public interface LocalBordMapper {
|
||||
List<Map<String, Object>> getGeneralPosts();
|
||||
|
||||
// 게시물 작성
|
||||
void createBoard(Map<String, Object> params);
|
||||
void createBoard(MapDto map);
|
||||
|
||||
// 첨부파일 저장
|
||||
void addAttachment(Map<String, Object> params);
|
||||
void addAttachment(MapDto map);
|
||||
|
||||
// 게시물 삭제
|
||||
void deleteBoard(Map<String, Object> params);
|
||||
void deleteBoard(MapDto map);
|
||||
|
||||
// 게시물 수정
|
||||
void updateBoard(Map<String, Object> params);
|
||||
void updateBoard(MapDto map);
|
||||
|
||||
// 게시물 좋아요/싫어요 추가
|
||||
void reactToBoard(Map<String, Object> params);
|
||||
void reactToBoard(MapDto map);
|
||||
|
||||
// 댓글 조회
|
||||
List<Map<String, Object>> getComments(int boardSeq);
|
||||
|
||||
// 댓글/대댓글 작성
|
||||
void addCommentOrReply(Map<String, Object> params);
|
||||
void addCommentOrReply(MapDto map);
|
||||
|
||||
// 댓글/대댓글 수정
|
||||
void updateComment(Map<String, Object> params);
|
||||
void updateComment(MapDto map);
|
||||
|
||||
// 댓글/대댓글 삭제
|
||||
void deleteComment(Map<String, Object> params);
|
||||
void deleteComment(MapDto map);
|
||||
|
||||
// 게시물 비밀번호 확인
|
||||
boolean checkBoardPassword(Map<String, Object> params);
|
||||
boolean checkBoardPassword(MapDto map);
|
||||
|
||||
// 댓글 비밀번호 확인
|
||||
boolean checkCommentPassword(Map<String, Object> params);
|
||||
boolean checkCommentPassword(MapDto map);
|
||||
|
||||
// 비밀 게시판 여부 확인
|
||||
boolean isSecretBoard(Long boardId);
|
||||
|
||||
@ -5,6 +5,7 @@ import java.util.Map;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import io.company.localhost.common.dto.MapDto;
|
||||
import io.company.localhost.mapper.LocalBordMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@ -21,48 +22,48 @@ public class LocalBordService {
|
||||
return boardMapper.getGeneralPosts();
|
||||
}
|
||||
|
||||
public void createBoard(Map<String, Object> params) {
|
||||
boardMapper.createBoard(params);
|
||||
public void createBoard(MapDto map) {
|
||||
boardMapper.createBoard(map);
|
||||
}
|
||||
|
||||
public void addAttachment(Map<String, Object> params) {
|
||||
boardMapper.addAttachment(params);
|
||||
public void addAttachment(MapDto map) {
|
||||
boardMapper.addAttachment(map);
|
||||
}
|
||||
|
||||
public void deleteBoard(Map<String, Object> params) {
|
||||
boardMapper.deleteBoard(params);
|
||||
public void deleteBoard(MapDto map) {
|
||||
boardMapper.deleteBoard(map);
|
||||
}
|
||||
|
||||
public void updateBoard(Map<String, Object> params) {
|
||||
boardMapper.updateBoard(params);
|
||||
public void updateBoard(MapDto map) {
|
||||
boardMapper.updateBoard(map);
|
||||
}
|
||||
|
||||
public void reactToBoard(Map<String, Object> params) {
|
||||
boardMapper.reactToBoard(params);
|
||||
public void reactToBoard(MapDto map) {
|
||||
boardMapper.reactToBoard(map);
|
||||
}
|
||||
|
||||
public List<Map<String, Object>> getComments(int boardSeq) {
|
||||
return boardMapper.getComments(boardSeq);
|
||||
}
|
||||
|
||||
public void addCommentOrReply(Map<String, Object> params) {
|
||||
boardMapper.addCommentOrReply(params);
|
||||
public void addCommentOrReply(MapDto map) {
|
||||
boardMapper.addCommentOrReply(map);
|
||||
}
|
||||
|
||||
public void updateComment(Map<String, Object> params) {
|
||||
boardMapper.updateComment(params);
|
||||
public void updateComment(MapDto map) {
|
||||
boardMapper.updateComment(map);
|
||||
}
|
||||
|
||||
public void deleteComment(Map<String, Object> params) {
|
||||
boardMapper.deleteComment(params);
|
||||
public void deleteComment(MapDto map) {
|
||||
boardMapper.deleteComment(map);
|
||||
}
|
||||
|
||||
public boolean checkBoardPassword(Map<String, Object> params) {
|
||||
return boardMapper.checkBoardPassword(params);
|
||||
public boolean checkBoardPassword(MapDto map) {
|
||||
return boardMapper.checkBoardPassword(map);
|
||||
}
|
||||
|
||||
public boolean checkCommentPassword(Map<String, Object> params) {
|
||||
return boardMapper.checkCommentPassword(params);
|
||||
public boolean checkCommentPassword(MapDto map) {
|
||||
return boardMapper.checkCommentPassword(map);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -4,6 +4,14 @@ project:
|
||||
time-zone: Asia/Seoul
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mariadb://192.168.0.251:3306/localnet
|
||||
username: root
|
||||
password: host1234
|
||||
driver-class-name: org.mariadb.jdbc.Driver
|
||||
devtools:
|
||||
livereload:
|
||||
enabled: true
|
||||
application:
|
||||
name: ${project.name}
|
||||
config:
|
||||
@ -19,8 +27,8 @@ spring:
|
||||
mybatis:
|
||||
mapper-locations: classpath:mapper/**/*.xml
|
||||
|
||||
#상태 모니터링 (재시작,메모리 등등 관리해줌)
|
||||
#localhost:10325/health 로 보면 됨
|
||||
# 상태 모니터링 (재시작, 메모리 등등 관리)
|
||||
# localhost:10325/health 로 확인 가능
|
||||
management:
|
||||
health:
|
||||
defaults:
|
||||
@ -31,7 +39,7 @@ management:
|
||||
path-mapping:
|
||||
health: check
|
||||
exposure:
|
||||
include: health,prometheus,metrics
|
||||
include: health, prometheus, metrics
|
||||
endpoint:
|
||||
health:
|
||||
show-details: never
|
||||
@ -45,16 +53,15 @@ management:
|
||||
server:
|
||||
max-uri-tags: 200
|
||||
|
||||
|
||||
server:
|
||||
shutdown: graceful
|
||||
port: 10325
|
||||
tomcat:
|
||||
max-http-form-post-size: 20MB
|
||||
max-connections: 1024 # default 8192
|
||||
max-connections: 1024 # 기본값 8192
|
||||
threads:
|
||||
min-spare: 51
|
||||
max: 101 # default 200
|
||||
max: 101 # 기본값 200
|
||||
servlet:
|
||||
encoding:
|
||||
charset: UTF-8
|
||||
@ -66,12 +73,11 @@ server:
|
||||
timeout: 300m
|
||||
cookie:
|
||||
path: /
|
||||
# 쿠키 보안
|
||||
# 쿠키 보안 설정
|
||||
http-only: true
|
||||
secure: true
|
||||
same-site: NONE
|
||||
|
||||
# logging
|
||||
logging:
|
||||
level:
|
||||
jdbc:
|
||||
@ -82,5 +88,4 @@ logging:
|
||||
resultset: off
|
||||
connection: off
|
||||
io.company: DEBUG
|
||||
io.company.localhost.mapper : off
|
||||
|
||||
io.company.localhost.mapper: off
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.company.localhost.mapper.LocalBordMapper.xml">
|
||||
<mapper namespace="io.company.localhost.mapper.LocalBordMapper">
|
||||
|
||||
<!-- 공지사항 조회 -->
|
||||
<select id="getNotices" resultType="java.util.Map">
|
||||
@ -20,19 +20,15 @@
|
||||
</select>
|
||||
|
||||
<!-- 자유/비밀 게시판 조회 -->
|
||||
<select id="getGeneralPosts" resultType="java.util.Map">
|
||||
<select id="getGeneralPosts" resultType="map">
|
||||
SELECT
|
||||
LOCBRDSEQ AS id,
|
||||
LOCBRDTTL AS title,
|
||||
LOCBRDCON AS content,
|
||||
LOCBRDRDT AS date,
|
||||
LOCBRDTYP AS type,
|
||||
MEMBERSEQ AS member,
|
||||
LOCBRDCNT AS cnt,
|
||||
LOCBRDCAT AS catagory
|
||||
FROM localbord
|
||||
WHERE b.LOCBRDTYP IN ('F', 'S')
|
||||
ORDER BY b.LOCBRDRDT DESC
|
||||
LOCBRDSEQ AS id,
|
||||
LOCBRDTTL AS title,
|
||||
LOCBRDCON AS content,
|
||||
LOCBRDRDT AS date
|
||||
FROM localbord
|
||||
WHERE LOCBRDTYP IN ('F', 'S')
|
||||
ORDER BY LOCBRDRDT DESC
|
||||
</select>
|
||||
|
||||
<!-- 게시물 작성 -->
|
||||
|
||||
Loading…
Reference in New Issue
Block a user