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