Commit d434ebaa51e14075e414c10b82ecf28edf905e02

Authored by sangkiham
1 parent 3e0aa26e

회원가입화면추가

log.config.path_IS_UNDEFINED/err_log.2022-03-29_0.log deleted
1 -2022-03-29 11:08:41 [restartedMain] [ERROR] o.s.b.d.LoggingFailureAnalysisReporter - []:  
2 -  
3 -***************************  
4 -APPLICATION FAILED TO START  
5 -***************************  
6 -  
7 -Description:  
8 -  
9 -Field boardDao in com.daeucna.board.service.BoardService required a bean named 'sqlSession' that could not be found.  
10 -  
11 -The injection point has the following annotations:  
12 - - @org.springframework.beans.factory.annotation.Autowired(required=true)  
13 -  
14 -  
15 -Action:  
16 -  
17 -Consider defining a bean named 'sqlSession' in your configuration.  
18 -  
log.config.path_IS_UNDEFINED/err_log.log deleted
1 -2022-03-30 10:35:05 [restartedMain] [ERROR] o.s.boot.SpringApplication - []:Application run failed  
2 -java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected:  
3 -ERROR in ch.qos.logback.core.joran.action.PropertyAction - Could not find resource [logback-dev.properties].  
4 - at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:328)  
5 - at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:282)  
6 - at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:240)  
7 - at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)  
8 - at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)  
9 - at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)  
10 - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)  
11 - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)  
12 - at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)  
13 - at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)  
14 - at java.util.ArrayList.forEach(ArrayList.java:1257)  
15 - at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)  
16 - at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)  
17 - at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)  
18 - at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:339)  
19 - at org.springframework.boot.SpringApplication.run(SpringApplication.java:297)  
20 - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)  
21 - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)  
22 - at com.daeucna.board.BoardApplication.main(BoardApplication.java:12)  
23 - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
24 - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
25 - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
26 - at java.lang.reflect.Method.invoke(Method.java:498)  
27 - at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)  
28 -Caused by: java.lang.IllegalStateException: Logback configuration error detected:  
29 -ERROR in ch.qos.logback.core.joran.action.PropertyAction - Could not find resource [logback-dev.properties].  
30 - at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)  
31 - at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)  
32 - at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)  
33 - at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)  
34 - at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:313)  
35 - ... 23 common frames omitted  
log.config.path_IS_UNDEFINED/log.config.filename_IS_UNDEFINED.2022-03-29_0.log deleted
1 -2022-03-29 11:08:40 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:Starting BoardApplication using Java 1.8.0_202 on sangkiham_PC with PID 15708 (D:\Working\java\board\target\classes started by sangkiham in D:\Working\java\board)  
2 -2022-03-29 11:08:40 [restartedMain] [DEBUG] com.daeucna.board.BoardApplication - []:Running with Spring Boot v2.6.4, Spring v5.3.16  
3 -2022-03-29 11:08:40 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:The following 1 profile is active: "pom.xml"  
4 -2022-03-29 11:08:40 [restartedMain] [INFO ] o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - []:Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable  
5 -2022-03-29 11:08:40 [restartedMain] [INFO ] o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - []:For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'  
6 -2022-03-29 11:08:41 [restartedMain] [DEBUG] org.apache.ibatis.logging.LogFactory - []:Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.  
7 -2022-03-29 11:08:41 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
8 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat initialized with port(s): 8080 (http)  
9 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Initializing ProtocolHandler ["http-nio-8080"]  
10 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.a.catalina.core.StandardService - []:Starting service [Tomcat]  
11 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.a.catalina.core.StandardEngine - []:Starting Servlet engine: [Apache Tomcat/9.0.58]  
12 -2022-03-29 11:08:41 [restartedMain] [INFO ] org.apache.jasper.servlet.TldScanner - []:At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.  
13 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/] - []:Initializing Spring embedded WebApplicationContext  
14 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.s.b.w.s.c.ServletWebServerApplicationContext - []:Root WebApplicationContext: initialization completed in 681 ms  
15 -2022-03-29 11:08:41 [restartedMain] [WARN ] o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - []:Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'boardController': Unsatisfied dependency expressed through field 'boardService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'boardService': Unsatisfied dependency expressed through field 'boardDao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boardDao': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sqlSession' available  
16 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.a.catalina.core.StandardService - []:Stopping service [Tomcat]  
17 -2022-03-29 11:08:41 [restartedMain] [INFO ] o.s.b.a.l.ConditionEvaluationReportLoggingListener - []:  
18 -  
19 -Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.  
20 -2022-03-29 11:08:41 [restartedMain] [ERROR] o.s.b.d.LoggingFailureAnalysisReporter - []:  
21 -  
22 -***************************  
23 -APPLICATION FAILED TO START  
24 -***************************  
25 -  
26 -Description:  
27 -  
28 -Field boardDao in com.daeucna.board.service.BoardService required a bean named 'sqlSession' that could not be found.  
29 -  
30 -The injection point has the following annotations:  
31 - - @org.springframework.beans.factory.annotation.Autowired(required=true)  
32 -  
33 -  
34 -Action:  
35 -  
36 -Consider defining a bean named 'sqlSession' in your configuration.  
37 -  
log.config.path_IS_UNDEFINED/log.config.filename_IS_UNDEFINED.log deleted
1 -2022-03-30 10:35:05 [restartedMain] [ERROR] o.s.boot.SpringApplication - []:Application run failed  
2 -java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected:  
3 -ERROR in ch.qos.logback.core.joran.action.PropertyAction - Could not find resource [logback-dev.properties].  
4 - at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:328)  
5 - at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:282)  
6 - at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:240)  
7 - at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)  
8 - at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)  
9 - at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)  
10 - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)  
11 - at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)  
12 - at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)  
13 - at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)  
14 - at java.util.ArrayList.forEach(ArrayList.java:1257)  
15 - at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)  
16 - at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)  
17 - at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)  
18 - at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:339)  
19 - at org.springframework.boot.SpringApplication.run(SpringApplication.java:297)  
20 - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312)  
21 - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301)  
22 - at com.daeucna.board.BoardApplication.main(BoardApplication.java:12)  
23 - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
24 - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
25 - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
26 - at java.lang.reflect.Method.invoke(Method.java:498)  
27 - at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)  
28 -Caused by: java.lang.IllegalStateException: Logback configuration error detected:  
29 -ERROR in ch.qos.logback.core.joran.action.PropertyAction - Could not find resource [logback-dev.properties].  
30 - at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)  
31 - at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)  
32 - at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)  
33 - at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)  
34 - at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:313)  
35 - ... 23 common frames omitted  
36 -2022-03-30 10:41:00 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
37 -2022-03-30 10:41:37 [restartedMain] [DEBUG] org.apache.ibatis.logging.LogFactory - []:Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.  
38 -2022-03-30 10:41:37 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
39 -2022-03-30 10:42:33 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
40 -2022-03-30 10:42:51 [restartedMain] [DEBUG] org.apache.ibatis.logging.LogFactory - []:Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.  
41 -2022-03-30 10:42:51 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
42 -2022-03-30 10:43:58 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:Starting BoardApplication using Java 1.8.0_202 on sangkiham_PC with PID 13128 (D:\Working\java\board\target\classes started by sangkiham in D:\Working\java\board)  
43 -2022-03-30 10:43:58 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:The following 1 profile is active: "run"  
44 -2022-03-30 10:43:59 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
45 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat initialized with port(s): 8380 (http)  
46 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Initializing ProtocolHandler ["http-nio-8380"]  
47 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.a.catalina.core.StandardService - []:Starting service [Tomcat]  
48 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.a.catalina.core.StandardEngine - []:Starting Servlet engine: [Apache Tomcat/9.0.58]  
49 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/] - []:Initializing Spring embedded WebApplicationContext  
50 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.s.b.w.s.c.ServletWebServerApplicationContext - []:Root WebApplicationContext: initialization completed in 197 ms  
51 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.s.s.web.DefaultSecurityFilterChain - []:Will not secure any request  
52 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.s.b.d.a.OptionalLiveReloadServer - []:LiveReload server is running on port 35729  
53 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Starting ProtocolHandler ["http-nio-8380"]  
54 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat started on port(s): 8380 (http) with context path ''  
55 -2022-03-30 10:43:59 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:Started BoardApplication in 0.344 seconds (JVM running for 69.491)  
56 -2022-03-30 10:43:59 [restartedMain] [INFO ] o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - []:Condition evaluation unchanged  
57 -2022-03-30 10:44:23 [RMI TCP Connection(14)-127.0.0.1] [INFO ] o.s.b.a.SpringApplicationAdminMXBeanRegistrar$SpringApplicationAdmin - []:Application shutdown requested.  
58 -2022-03-30 10:44:32 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:Starting BoardApplication using Java 1.8.0_202 on sangkiham_PC with PID 2388 (D:\Working\java\board\target\classes started by sangkiham in D:\Working\java\board)  
59 -2022-03-30 10:44:32 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:The following 1 profile is active: "run"  
60 -2022-03-30 10:44:32 [restartedMain] [INFO ] o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - []:Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable  
61 -2022-03-30 10:44:32 [restartedMain] [INFO ] o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - []:For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'  
62 -2022-03-30 10:44:32 [restartedMain] [DEBUG] org.apache.ibatis.logging.LogFactory - []:Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.  
63 -2022-03-30 10:44:32 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
64 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat initialized with port(s): 8380 (http)  
65 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Initializing ProtocolHandler ["http-nio-8380"]  
66 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.a.catalina.core.StandardService - []:Starting service [Tomcat]  
67 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.a.catalina.core.StandardEngine - []:Starting Servlet engine: [Apache Tomcat/9.0.58]  
68 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/] - []:Initializing Spring embedded WebApplicationContext  
69 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.s.b.w.s.c.ServletWebServerApplicationContext - []:Root WebApplicationContext: initialization completed in 847 ms  
70 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.s.s.web.DefaultSecurityFilterChain - []:Will not secure any request  
71 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.s.b.d.a.OptionalLiveReloadServer - []:LiveReload server is running on port 35729  
72 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Starting ProtocolHandler ["http-nio-8380"]  
73 -2022-03-30 10:44:33 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat started on port(s): 8380 (http) with context path ''  
74 -2022-03-30 10:44:33 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:Started BoardApplication in 1.989 seconds (JVM running for 2.614)  
75 -2022-03-30 10:44:44 [http-nio-8380-exec-1] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/] - []:Initializing Spring DispatcherServlet 'dispatcherServlet'  
76 -2022-03-30 10:44:44 [http-nio-8380-exec-1] [INFO ] o.s.web.servlet.DispatcherServlet - []:Initializing Servlet 'dispatcherServlet'  
77 -2022-03-30 10:44:44 [http-nio-8380-exec-1] [INFO ] o.s.web.servlet.DispatcherServlet - []:Completed initialization in 1 ms  
78 -2022-03-30 10:45:00 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:Starting BoardApplication using Java 1.8.0_202 on sangkiham_PC with PID 2388 (D:\Working\java\board\target\classes started by sangkiham in D:\Working\java\board)  
79 -2022-03-30 10:45:00 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:The following 1 profile is active: "run"  
80 -2022-03-30 10:45:01 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
81 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat initialized with port(s): 8380 (http)  
82 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Initializing ProtocolHandler ["http-nio-8380"]  
83 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.a.catalina.core.StandardService - []:Starting service [Tomcat]  
84 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.a.catalina.core.StandardEngine - []:Starting Servlet engine: [Apache Tomcat/9.0.58]  
85 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/] - []:Initializing Spring embedded WebApplicationContext  
86 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.s.b.w.s.c.ServletWebServerApplicationContext - []:Root WebApplicationContext: initialization completed in 198 ms  
87 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.s.s.web.DefaultSecurityFilterChain - []:Will not secure any request  
88 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.s.b.d.a.OptionalLiveReloadServer - []:LiveReload server is running on port 35729  
89 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Starting ProtocolHandler ["http-nio-8380"]  
90 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat started on port(s): 8380 (http) with context path ''  
91 -2022-03-30 10:45:01 [restartedMain] [INFO ] com.daeucna.board.BoardApplication - []:Started BoardApplication in 0.344 seconds (JVM running for 29.897)  
92 -2022-03-30 10:45:01 [restartedMain] [INFO ] o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - []:Condition evaluation unchanged  
93 -2022-03-30 10:45:48 [restartedMain] [WARN ] o.m.s.mapper.ClassPathMapperScanner - []:No MyBatis mapper was found in '[com.daeucna.board]' package. Please check your configuration.  
94 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat initialized with port(s): 8380 (http)  
95 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Initializing ProtocolHandler ["http-nio-8380"]  
96 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.a.catalina.core.StandardService - []:Starting service [Tomcat]  
97 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.a.catalina.core.StandardEngine - []:Starting Servlet engine: [Apache Tomcat/9.0.58]  
98 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/] - []:Initializing Spring embedded WebApplicationContext  
99 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.s.b.w.s.c.ServletWebServerApplicationContext - []:Root WebApplicationContext: initialization completed in 190 ms  
100 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.s.s.web.DefaultSecurityFilterChain - []:Will not secure any request  
101 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.s.b.d.a.OptionalLiveReloadServer - []:LiveReload server is running on port 35729  
102 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.a.coyote.http11.Http11NioProtocol - []:Starting ProtocolHandler ["http-nio-8380"]  
103 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.s.b.w.e.tomcat.TomcatWebServer - []:Tomcat started on port(s): 8380 (http) with context path ''  
104 -2022-03-30 10:45:48 [restartedMain] [INFO ] o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - []:Condition evaluation unchanged  
105 -2022-03-30 10:45:57 [http-nio-8380-exec-1] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/] - []:Initializing Spring DispatcherServlet 'dispatcherServlet'  
106 -2022-03-30 10:45:57 [http-nio-8380-exec-1] [INFO ] o.s.web.servlet.DispatcherServlet - []:Initializing Servlet 'dispatcherServlet'  
107 -2022-03-30 10:45:57 [http-nio-8380-exec-1] [INFO ] o.s.web.servlet.DispatcherServlet - []:Completed initialization in 0 ms  
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4 +
4 <modelVersion>4.0.0</modelVersion> 5 <modelVersion>4.0.0</modelVersion>
5 <parent> 6 <parent>
6 <groupId>org.springframework.boot</groupId> 7 <groupId>org.springframework.boot</groupId>
pom_war.xml deleted
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
3 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  
4 - <modelVersion>4.0.0</modelVersion>  
5 - <parent>  
6 - <groupId>org.springframework.boot</groupId>  
7 - <artifactId>spring-boot-starter-parent</artifactId>  
8 - <version>2.6.4</version>  
9 - <relativePath/> <!-- lookup parent from repository -->  
10 - </parent>  
11 - <groupId>com.daeucna</groupId>  
12 - <artifactId>board</artifactId>  
13 - <version>0.0.1-SNAPSHOT</version>  
14 - <name>board</name>  
15 - <!-- War deploy시-->  
16 - <packaging>war</packaging>  
17 -  
18 - <description>Demo project for Spring Boot</description>  
19 - <properties>  
20 - <java.version>1.8</java.version>  
21 - <jackson.version>2.9.5</jackson.version>  
22 - </properties>  
23 - <dependencies>  
24 - <dependency>  
25 - <groupId>org.springframework.boot</groupId>  
26 - <artifactId>spring-boot-starter-web</artifactId>  
27 - <!-- war deploy시 -->  
28 - <exclusions>  
29 - <exclusion>  
30 - <groupId>org.springframework.boot</groupId>  
31 - <artifactId>spring-boot-starter-logging</artifactId>  
32 - </exclusion>  
33 - </exclusions>  
34 -  
35 - </dependency>  
36 - <dependency>  
37 - <groupId>org.mybatis.spring.boot</groupId>  
38 - <artifactId>mybatis-spring-boot-starter</artifactId>  
39 - <version>2.2.2</version>  
40 - </dependency>  
41 -  
42 - <dependency>  
43 - <groupId>org.springframework.boot</groupId>  
44 - <artifactId>spring-boot-devtools</artifactId>  
45 - <scope>runtime</scope>  
46 - <optional>true</optional>  
47 - </dependency>  
48 - <dependency>  
49 - <groupId>org.mariadb.jdbc</groupId>  
50 - <artifactId>mariadb-java-client</artifactId>  
51 - <scope>runtime</scope>  
52 - </dependency>  
53 - <dependency>  
54 - <groupId>org.springframework.boot</groupId>  
55 - <artifactId>spring-boot-configuration-processor</artifactId>  
56 - <optional>true</optional>  
57 - </dependency>  
58 - <dependency>  
59 - <groupId>org.projectlombok</groupId>  
60 - <artifactId>lombok</artifactId>  
61 - <optional>true</optional>  
62 - </dependency>  
63 - <dependency>  
64 - <groupId>org.springframework.boot</groupId>  
65 - <artifactId>spring-boot-starter-test</artifactId>  
66 - <scope>test</scope>  
67 - </dependency>  
68 - <!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->  
69 - <dependency>  
70 - <groupId>org.bgee.log4jdbc-log4j2</groupId>  
71 - <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>  
72 - <version>1.16</version>  
73 - </dependency>  
74 -  
75 - <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->  
76 - <dependency>  
77 - <groupId>io.springfox</groupId>  
78 - <artifactId>springfox-swagger2</artifactId>  
79 - <version>2.9.2</version>  
80 - </dependency>  
81 -  
82 - <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->  
83 - <dependency>  
84 - <groupId>io.springfox</groupId>  
85 - <artifactId>springfox-swagger-ui</artifactId>  
86 - <version>2.9.2</version>  
87 - </dependency>  
88 -  
89 - <!-- JUnit4 사용하기 위해서 Vintage Engine 모듈을 제외 -->  
90 - <dependency>  
91 - <groupId>org.junit.vintage</groupId>  
92 - <artifactId>junit-vintage-engine</artifactId>  
93 - <scope>test</scope>  
94 - <exclusions>  
95 - <exclusion>  
96 - <groupId>org.hamcrest</groupId>  
97 - <artifactId>hamcrest-core</artifactId>  
98 - </exclusion>  
99 - </exclusions>  
100 - </dependency>  
101 -  
102 - <!-- https://mvnrepository.com/artifact/org.springframework/spring-oxm -->  
103 - <dependency>  
104 - <groupId>org.springframework</groupId>  
105 - <artifactId>spring-oxm</artifactId>  
106 - </dependency>  
107 -  
108 - <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-jaxb-annotations -->  
109 - <dependency>  
110 - <groupId>com.fasterxml.jackson.module</groupId>  
111 - <artifactId>jackson-module-jaxb-annotations</artifactId>  
112 - </dependency>  
113 -  
114 - <!-- Apache Commons file upload -->  
115 - <dependency>  
116 - <groupId>commons-fileupload</groupId>  
117 - <artifactId>commons-fileupload</artifactId>  
118 - <version>1.2.2</version>  
119 - </dependency>  
120 -  
121 - <!-- Apache Commons IO -->  
122 - <dependency>  
123 - <groupId>org.apache.commons</groupId>  
124 - <artifactId>commons-io</artifactId>  
125 - <version>1.3.2</version>  
126 - </dependency>  
127 -  
128 - <dependency>  
129 - <groupId>org.springframework.boot</groupId>  
130 - <artifactId>spring-boot-starter-thymeleaf</artifactId>  
131 - </dependency>  
132 -  
133 - <!-- https://mvnrepository.com/artifact/nz.net.ultraq.thymeleaf/thymeleaf-layout-dialect -->  
134 - <dependency>  
135 - <groupId>nz.net.ultraq.thymeleaf</groupId>  
136 - <artifactId>thymeleaf-layout-dialect</artifactId>  
137 - <version>3.1.0</version>  
138 - </dependency>  
139 -  
140 - <dependency>  
141 - <groupId>org.springframework.boot</groupId>  
142 - <artifactId>spring-boot-starter</artifactId>  
143 - <!-- war deploy시 -->  
144 - <exclusions>  
145 - <exclusion>  
146 - <groupId>org.springframework.boot</groupId>  
147 - <artifactId>spring-boot-starter-logging</artifactId>  
148 - </exclusion>  
149 - </exclusions>  
150 -  
151 - </dependency>  
152 - <dependency>  
153 - <groupId>org.springframework.boot</groupId>  
154 - <artifactId>spring-boot-starter-security</artifactId>  
155 - </dependency>  
156 - <dependency>  
157 - <groupId>org.springframework.security</groupId>  
158 - <artifactId>spring-security-test</artifactId>  
159 - <scope>test</scope>  
160 - </dependency>  
161 -  
162 - <!-- War로 패캐징 할때 필요함. -->  
163 - <dependency>  
164 - <groupId>org.springframework.boot</groupId>  
165 - <artifactId>spring-boot-starter-tomcat</artifactId>  
166 - <scope>provided</scope>  
167 - </dependency>  
168 -  
169 -  
170 - </dependencies>  
171 -  
172 - <build>  
173 - <plugins>  
174 - <plugin>  
175 - <groupId>org.springframework.boot</groupId>  
176 - <artifactId>spring-boot-maven-plugin</artifactId>  
177 - <configuration>  
178 - <excludes>  
179 - <exclude>  
180 - <groupId>org.projectlombok</groupId>  
181 - <artifactId>lombok</artifactId>  
182 - </exclude>  
183 - </excludes>  
184 - </configuration>  
185 - </plugin>  
186 - </plugins>  
187 - </build>  
188 -  
189 -</project>  
src/main/java/com/daeucna/board/config/SecurityConfig.java
@@ -36,7 +36,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @@ -36,7 +36,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
36 36
37 http 37 http
38 .formLogin() 38 .formLogin()
39 - //.loginPage("/login") 39 + .loginPage("/login")
40 .loginProcessingUrl("/login_proc") //("로그인 처리 경로") -> 로그인 form 의 action과 일치시켜주어야 한다 즉 스프링시큐어리티가 가로챌 url이다 40 .loginProcessingUrl("/login_proc") //("로그인 처리 경로") -> 로그인 form 의 action과 일치시켜주어야 한다 즉 스프링시큐어리티가 가로챌 url이다
41 .usernameParameter("loginId") 41 .usernameParameter("loginId")
42 .passwordParameter("password") 42 .passwordParameter("password")
src/main/java/com/daeucna/board/security/CustomLoadUserByUsername.java
@@ -22,7 +22,7 @@ public class CustomLoadUserByUsername implements UserDetailsService{ @@ -22,7 +22,7 @@ public class CustomLoadUserByUsername implements UserDetailsService{
22 @Override 22 @Override
23 public UserDetails loadUserByUsername(String loginId) throws UsernameNotFoundException { 23 public UserDetails loadUserByUsername(String loginId) throws UsernameNotFoundException {
24 UserForm userForm = new UserForm(); 24 UserForm userForm = new UserForm();
25 - userForm.setLoginId(loginId); 25 + userForm.setEmail(loginId);
26 26
27 UserDto user = null; 27 UserDto user = null;
28 try { 28 try {
src/main/java/com/daeucna/board/security/controller/LoginController.java
1 package com.daeucna.board.security.controller; 1 package com.daeucna.board.security.controller;
2 2
3 -import java.security.Principal;  
4 -import java.util.HashMap;  
5 -import java.util.Map;  
6 - 3 +import javax.servlet.http.HttpServletRequest;
  4 +import javax.servlet.http.HttpServletResponse;
7 import javax.servlet.http.HttpSession; 5 import javax.servlet.http.HttpSession;
8 6
  7 +import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.http.HttpStatus; 8 import org.springframework.http.HttpStatus;
10 import org.springframework.http.ResponseEntity; 9 import org.springframework.http.ResponseEntity;
11 import org.springframework.security.core.Authentication; 10 import org.springframework.security.core.Authentication;
12 -import org.springframework.security.core.annotation.AuthenticationPrincipal;  
13 import org.springframework.stereotype.Controller; 11 import org.springframework.stereotype.Controller;
14 import org.springframework.ui.Model; 12 import org.springframework.ui.Model;
15 import org.springframework.web.bind.annotation.GetMapping; 13 import org.springframework.web.bind.annotation.GetMapping;
  14 +import org.springframework.web.bind.annotation.PostMapping;
16 import org.springframework.web.bind.annotation.RequestMapping; 15 import org.springframework.web.bind.annotation.RequestMapping;
17 import org.springframework.web.bind.annotation.ResponseBody; 16 import org.springframework.web.bind.annotation.ResponseBody;
18 17
19 import com.daeucna.board.security.domain.UserDto; 18 import com.daeucna.board.security.domain.UserDto;
  19 +import com.daeucna.board.security.domain.UserForm;
  20 +import com.daeucna.board.security.service.LoginService;
20 21
21 import lombok.extern.slf4j.Slf4j; 22 import lombok.extern.slf4j.Slf4j;
22 23
@@ -25,18 +26,15 @@ import lombok.extern.slf4j.Slf4j; @@ -25,18 +26,15 @@ import lombok.extern.slf4j.Slf4j;
25 @Slf4j 26 @Slf4j
26 public class LoginController { 27 public class LoginController {
27 28
28 - @GetMapping("/login")  
29 - public String getLogin(Model model) {  
30 - log.info("로그인 Page");  
31 - return "/page/login/login";  
32 - }  
33 -  
34 - @GetMapping("/fail")  
35 - public String procFail(Model model) {  
36 - log.info("로그인 실패");  
37 - return "/page/login/fail";  
38 - } 29 + @Autowired
  30 + private LoginService loginService;
39 31
  32 + @GetMapping("/login")
  33 + public String getlogin(Model model) {
  34 + log.info("로그인 Page");
  35 + return "page/login/login";
  36 + }
  37 +
40 @GetMapping("/info") 38 @GetMapping("/info")
41 @ResponseBody 39 @ResponseBody
42 public String getCurrentUserInfo(HttpSession httpSession) { 40 public String getCurrentUserInfo(HttpSession httpSession) {
@@ -49,5 +47,26 @@ public class LoginController { @@ -49,5 +47,26 @@ public class LoginController {
49 return "먼저 로그인을 하세요"; 47 return "먼저 로그인을 하세요";
50 } 48 }
51 } 49 }
  50 +
  51 + @GetMapping("/join")
  52 + public String getJoin(Model model) {
  53 + log.info("회원가입 Page");
  54 + return "page/login/join";
  55 + }
  56 +
  57 + @PostMapping("/join_proc")
  58 + @ResponseBody
  59 + public ResponseEntity procJoin(HttpServletRequest request, HttpServletResponse response, UserForm userForm) {
  60 + HttpStatus httpStatus = null;
  61 + UserForm resultUserForm = null;
  62 + try {
  63 + resultUserForm = loginService.procJoin(userForm);
  64 +
  65 + httpStatus = HttpStatus.OK;
  66 + } catch (Exception e) {
  67 + httpStatus = HttpStatus.BAD_REQUEST;
  68 + }
  69 + return new ResponseEntity(resultUserForm, httpStatus);
  70 + }
52 71
53 } 72 }
54 \ No newline at end of file 73 \ No newline at end of file
src/main/java/com/daeucna/board/security/dao/UserDao.java
@@ -19,5 +19,9 @@ public class UserDao { @@ -19,5 +19,9 @@ public class UserDao {
19 public UserDto getOne(UserForm userForm) throws Exception { 19 public UserDto getOne(UserForm userForm) throws Exception {
20 return sqlSession.selectOne(NAMESPACE + ".getOne", userForm); 20 return sqlSession.selectOne(NAMESPACE + ".getOne", userForm);
21 } 21 }
22 - 22 +
  23 + public int insertUser(UserForm userForm) throws Exception {
  24 + return sqlSession.insert(NAMESPACE + ".insertUser", userForm);
  25 + }
  26 +
23 } 27 }
24 \ No newline at end of file 28 \ No newline at end of file
src/main/java/com/daeucna/board/security/domain/UserForm.java
@@ -6,6 +6,9 @@ import lombok.ToString; @@ -6,6 +6,9 @@ import lombok.ToString;
6 6
7 @Getter @Setter @ToString 7 @Getter @Setter @ToString
8 public class UserForm { 8 public class UserForm {
9 - private String loginId;  
10 - private String password; 9 + private String name;
  10 + private String nickname;
  11 + private String email;
  12 + private String joinPass;
  13 + private String result;
11 } 14 }
src/main/java/com/daeucna/board/security/service/LoginService.java 0 → 100644
  1 +package com.daeucna.board.security.service;
  2 +
  3 +import java.io.File;
  4 +import java.util.ArrayList;
  5 +import java.util.HashMap;
  6 +import java.util.List;
  7 +import java.util.UUID;
  8 +
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
  13 +import org.springframework.stereotype.Service;
  14 +import org.springframework.transaction.annotation.Propagation;
  15 +import org.springframework.transaction.annotation.Transactional;
  16 +import org.springframework.web.multipart.MultipartFile;
  17 +
  18 +import com.daeucna.board.common.PagingUtil;
  19 +import com.daeucna.board.common.ResultUtil;
  20 +import com.daeucna.board.dao.BoardDao;
  21 +import com.daeucna.board.domain.BoardDto;
  22 +import com.daeucna.board.domain.BoardFileForm;
  23 +import com.daeucna.board.domain.BoardForm;
  24 +import com.daeucna.board.domain.CommonDto;
  25 +import com.daeucna.board.domain.CommonForm;
  26 +import com.daeucna.board.security.dao.UserDao;
  27 +import com.daeucna.board.security.domain.UserDto;
  28 +import com.daeucna.board.security.domain.UserForm;
  29 +
  30 +@Transactional(readOnly = true)
  31 +@Service
  32 +public class LoginService {
  33 +
  34 + protected final Logger logger = LoggerFactory.getLogger(LoginService.class);
  35 +
  36 + @Autowired
  37 + private UserDao userDao;
  38 + @Autowired
  39 + private BCryptPasswordEncoder bCryptPasswordEncoder;
  40 +
  41 + /** join 처리 */
  42 + @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
  43 + public UserForm procJoin(UserForm userForm) throws Exception {
  44 + int insertCnt = 0;
  45 + //패스워드 암호화
  46 + userForm.setJoinPass(bCryptPasswordEncoder.encode(userForm.getJoinPass()));
  47 +
  48 + insertCnt = userDao.insertUser(userForm);
  49 +
  50 + if (insertCnt > 0) {
  51 + userForm.setResult("SUCCESS");
  52 + } else {
  53 + userForm.setResult("FAIL");
  54 + }
  55 +
  56 + return userForm;
  57 + }
  58 +
  59 +}
src/main/resources/logback-run.properties
1 -log.config.path=/logs/board 1 +log.config.path=/home/daeuadm/JBossDeploy/log/board
2 log.config.filename=board_log 2 log.config.filename=board_log
3 \ No newline at end of file 3 \ No newline at end of file
src/main/resources/mapper/board/security/UserMapper.xml
@@ -13,8 +13,30 @@ @@ -13,8 +13,30 @@
13 ON 13 ON
14 A.USERNAME = B.USERNAME 14 A.USERNAME = B.USERNAME
15 WHERE 15 WHERE
16 - A.USERNAME = #{loginId} 16 + A.USERNAME = #{email}
17 AND A.isEnabled = 'Y' 17 AND A.isEnabled = 'Y'
18 </select> 18 </select>
19 19
  20 + <insert id="insertUser" parameterType="com.daeucna.board.security.domain.UserForm">
  21 +
  22 + INSERT
  23 + INTO BOARD.USER
  24 + (
  25 + USERNAME
  26 + , REALNAME
  27 + , NICKNAME
  28 + , PASSWORD
  29 + , ISENABLED
  30 + )
  31 + VALUES
  32 + (
  33 + #{email}
  34 + , #{name}
  35 + , #{nickname}
  36 + , #{joinPass}
  37 + , 'Y'
  38 + )
  39 +
  40 + </insert>
  41 +
20 </mapper> 42 </mapper>
src/main/resources/templates/fragment/configNoCustom.html 0 → 100644
  1 +<html lagn="ko"
  2 + xmlns:th="http://www.thymeleaf.org"
  3 + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
  4 +
  5 + <!--configFragment 선언-->
  6 + <th:block th:fragment="configFragment">
  7 +
  8 +
  9 + <!-- 이 영역에 공통으로 사용할 css, js library를 선언한다. -->
  10 + <link rel="stylesheet" th:href="@{/css/common/bootstrap.css}">
  11 +
  12 + <script th:src="@{/js/common/jquery.js}"></script>
  13 + <script th:src="@{/js/common/jquery.form.js}"></script>
  14 + <script th:src="@{/js/common/bootstrap.js}"></script>
  15 +
  16 + <!-- Content Page의 CSS fragment 삽입 -->
  17 + <th:block layout:fragment="css"></th:block>
  18 +
  19 + <!-- Content Page의 script fragment 삽입 -->
  20 + <th:block layout:fragment="script"></th:block>
  21 +
  22 + </th:block>
  23 +</html>
0 \ No newline at end of file 24 \ No newline at end of file
src/main/resources/templates/fragment/header.html
@@ -15,5 +15,5 @@ @@ -15,5 +15,5 @@
15 </div> 15 </div>
16 </div> 16 </div>
17 </div> 17 </div>
18 - 18 +
19 </html> 19 </html>
20 \ No newline at end of file 20 \ No newline at end of file
src/main/resources/templates/layout/default_layout.html
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 6
7 <head> 7 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 - <title>게시판</title> 9 + <title>&gt;**&lt;</title>
10 10
11 <!-- config fragment 사용 --> 11 <!-- config fragment 사용 -->
12 <th:block th:replace="fragment/config :: configFragment" ></th:block> 12 <th:block th:replace="fragment/config :: configFragment" ></th:block>
src/main/resources/templates/layout/oneDoc_layout.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +
  3 +<html lagn="ko"
  4 + xmlns:th="http://www.thymeleaf.org"
  5 + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
  6 +
  7 + <head>
  8 + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  9 + <title>&gt;**&lt;</title>
  10 +
  11 + <!-- config fragment 사용 -->
  12 + <th:block th:replace="fragment/configNoCustom :: configFragment" ></th:block>
  13 + </head>
  14 +
  15 + <body>
  16 + <!--
  17 + content fragment 사용
  18 + 현재 layout을 사용하는 content fragment의 내용을 삽입한다.
  19 + -->
  20 + <div style="height: 100%;">
  21 + <th:block layout:fragment="content"></th:block>
  22 + </div>
  23 + </body>
  24 +
  25 +</html>
0 \ No newline at end of file 26 \ No newline at end of file
src/main/resources/templates/page/login/join.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html xmlns="http://www.w3.org/1999/xhtml"
  3 + xmlns:th="http://www.thymeleaf.org"
  4 + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  5 + layout:decorate="~{layout/oneDoc_layout}">
  6 +
  7 + <!-- index.html 고유 CSS 추가 -->
  8 + <th:block layout:fragment="css">
  9 + <style>
  10 + body {
  11 + min-height: 100vh;
  12 + background: -webkit-gradient(linear, left bottom, right top, from(#92b5db), to(#1d466c));
  13 + background: -webkit-linear-gradient(bottom left, #92b5db 0%, #1d466c 100%);
  14 + background: -moz-linear-gradient(bottom left, #92b5db 0%, #1d466c 100%);
  15 + background: -o-linear-gradient(bottom left, #92b5db 0%, #1d466c 100%);
  16 + background: linear-gradient(to top right, #92b5db 0%, #1d466c 100%);
  17 + }
  18 + .input-form {
  19 + max-width: 680px;
  20 + margin-top: 80px;
  21 + padding: 32px;
  22 + background: #fff;
  23 + -webkit-border-radius: 10px;
  24 + -moz-border-radius: 10px;
  25 + border-radius: 10px;
  26 + -webkit-box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15);
  27 + -moz-box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15);
  28 + box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.15);
  29 + }
  30 + </style>
  31 + </th:block>
  32 +
  33 + <!-- index.html 고유 스크립트 추가 -->
  34 + <th:block layout:fragment="script">
  35 + <script type="text/javascript">
  36 +
  37 + $(document).ready(function(){
  38 +
  39 + $("#btnJoin").click(function(e) {
  40 + var form = $(".validation-form");
  41 + if (form[0].checkValidity() === false)
  42 + {
  43 + event.preventDefault();
  44 + event.stopPropagation();
  45 + } else {
  46 + procJoin();
  47 + }
  48 + form.addClass('was-validated');
  49 +
  50 + return false;
  51 + });
  52 +
  53 + });
  54 +
  55 +
  56 + /** 게시판 - 목록 조회 */
  57 + function procJoin(){
  58 +
  59 + var pss1 = $("#joinPass1").val();
  60 + var pss2 = $("#joinPass2").val();
  61 +
  62 + if (pss1 != pss2) {
  63 + showAlert("Error", "패스워드와 패스워드 확인이 일치하지 않습니다");
  64 + return false;
  65 + }
  66 +
  67 + $.ajax({
  68 + url : "[[@{/}]]join_proc",
  69 + data : $(".validation-form").serialize(),
  70 + dataType : "JSON",
  71 + cache : false,
  72 + async : true,
  73 + type : "POST",
  74 + success : function(result) {
  75 + showAlert("Success", "등록이 완료되었습니다. 로그인페이지로 이동합니다");
  76 + location.href = "[[@{/}]]";
  77 + },
  78 + error : function(xhr, status, error) {
  79 + showAlert(status, msg);
  80 + }
  81 + });
  82 + }
  83 +
  84 + function showAlert(pStatus, pMsg){
  85 + alert("[" + pStatus + "]:" + pMsg);
  86 + }
  87 +
  88 + </script>
  89 + </th:block>
  90 +
  91 + <th:block layout:fragment="content">
  92 + <div class="container">
  93 + <div class="input-form-backgroud row">
  94 + <div class="input-form col-md-12 mx-auto">
  95 + <h4 class="mb-3">사용자 등록</h4>
  96 + <form class="validation-form" novalidate>
  97 + <div class="row">
  98 + <div class="col-md-6 mb-3">
  99 + <label for="name">이름</label>
  100 + <input type="text" class="form-control" id="name" name="name" placeholder="" value="" required />
  101 + <div class="invalid-feedback">이름을 입력해주세요.</div>
  102 + </div>
  103 + <div class="col-md-6 mb-3">
  104 + <label for="nickname">별명</label>
  105 + <input type="text" class="form-control" id="nickname" name="nickname" placeholder="" value="" required />
  106 + <div class="invalid-feedback">별명을 입력해주세요.</div>
  107 + </div>
  108 + </div>
  109 + <div class="mb-3">
  110 + <label for="email">이메일</label>
  111 + <input type="email" class="form-control" id="email" name="email" placeholder="you@example.com" required />
  112 + <div class="invalid-feedback">이메일을 입력해주세요.</div>
  113 + </div>
  114 + <div class="row">
  115 + <div class="col-md-6 mb-3">
  116 + <label for="joinPass1">암호</label>
  117 + <input type="password" class="form-control" id="joinPass1" name="joinPass" placeholder="" value="" required />
  118 + <div class="invalid-feedback">암호를 입력해주세요.</div>
  119 + </div>
  120 + <div class="col-md-6 mb-3">
  121 + <label for="joinPass2">암호 확인</label>
  122 + <input type="password" class="form-control" id="joinPass2" placeholder="" value="" required />
  123 + <div class="invalid-feedback">암호확인을 입력해주세요.</div>
  124 + </div>
  125 + </div>
  126 + <hr class="mb-4" />
  127 + <div class="custom-control custom-checkbox">
  128 + <input type="checkbox" class="custom-control-input" id="aggrement" required />
  129 + <label class="custom-control-label" for="aggrement">개인정보 수집 및 이용에 동의합니다.</label>
  130 + </div>
  131 + <div class="mb-4" />
  132 + <button class="form-control btn btn-primary btn-lg btn-block" id="btnJoin">가입 완료</button>
  133 + </form>
  134 + </div>
  135 + </div>
  136 + </div>
  137 +
  138 + </th:block>
  139 +</html>
  140 +
src/main/resources/templates/page/login/login.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html xmlns="http://www.w3.org/1999/xhtml"
  3 + xmlns:th="http://www.thymeleaf.org"
  4 + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  5 + layout:decorate="~{layout/oneDoc_layout}">
  6 +
  7 + <!-- index.html 고유 CSS 추가 -->
  8 + <th:block layout:fragment="css">
  9 + <style>
  10 + html {
  11 + height: 100%;
  12 + }
  13 +
  14 + body {
  15 + width:100%;
  16 + height:100%;
  17 + margin: 0;
  18 + padding-top: 80px;
  19 + padding-bottom: 40px;
  20 + font-family: "Nanum Gothic", arial, helvetica, sans-serif;
  21 + background: -webkit-gradient(linear, left bottom, right top, from(#92b5db), to(#1d466c));
  22 + background: -webkit-linear-gradient(bottom left, #92b5db 0%, #1d466c 100%);
  23 + background: -moz-linear-gradient(bottom left, #92b5db 0%, #1d466c 100%);
  24 + background: -o-linear-gradient(bottom left, #92b5db 0%, #1d466c 100%);
  25 + background: linear-gradient(to top right, #92b5db 0%, #1d466c 100%);
  26 +
  27 + }
  28 +
  29 + .card {
  30 + margin: 0 auto; /* Added */
  31 + float: none; /* Added */
  32 + margin-bottom: 10px; /* Added */
  33 + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  34 + }
  35 +
  36 + .form-signin .form-control {
  37 + position: relative;
  38 + height: auto;
  39 + -webkit-box-sizing: border-box;
  40 + -moz-box-sizing: border-box;
  41 + box-sizing: border-box;
  42 + padding: 10px;
  43 + font-size: 16px;
  44 + }
  45 + </style>
  46 + </th:block>
  47 +
  48 + <!-- index.html 고유 스크립트 추가 -->
  49 + <th:block layout:fragment="script">
  50 + <script type="text/javascript">
  51 + $(document).ready(function(){
  52 +
  53 + $("#btn-join").click(function(e) {
  54 + location.href = "[[@{/}]]join";
  55 + });
  56 +
  57 + });
  58 + </script>
  59 + </th:block>
  60 + <th:block layout:fragment="content">
  61 + <div class="card align-middle" style="width:20rem; border-radius:20px;">
  62 + <div class="card-title" style="margin-top:30px;">
  63 + <h2 class="card-title text-center" style="color:#113366;">LOGIN</h2>
  64 + </div>
  65 + <div class="card-body">
  66 + <form class="form-signin" method="POST" th:action="@{/login_proc}">
  67 + <div class="row">
  68 + <div class="col">
  69 + <label for="uid" class="sr-only">메일주소</label>
  70 + <input type="email" id="uid" name="loginId" class="form-control" placeholder="name@example.com" required autofocus><BR>
  71 + </div>
  72 + </div>
  73 + <div class="row">
  74 + <div class="col">
  75 + <label for="upw" class="sr-only">암호</label>
  76 + <input type="password" id="upw" name="password" class="form-control" placeholder="비밀번호" required><br>
  77 + </div>
  78 + </div>
  79 + <div class="row">
  80 + <div class="col">
  81 + <button id="btn-login" class="form-control btn btn-lg btn-primary btn-block" type="submit">로그인</button>
  82 + </div>
  83 + <div class="col">
  84 + <button id="btn-join" class="form-control btn btn-lg btn-primary btn-block">사용자등록</button>
  85 + </div>
  86 + </div>
  87 + </form>
  88 + </div>
  89 + </div>
  90 + </th:block>
  91 +</html>
  92 +
src/main/webapp/META-INF/MANIFEST.MF 0 → 100644
  1 +Manifest-Version: 1.0
  2 +Class-Path:
  3 +