1. Local Tomcat 설정

1.1 Tomcat 폴더의 server.xml 설정

1.1.1 GlobalNamingResources 추가

driverClassName엔 사용하는 드라이버를 입력하면된다.

오라클일 경우 : oracle.jdbc.driver.OracleDriver 등.

global과, name 변수에는 똑같은 이름을 넣어준다. 

url이 오라클일 경우 : jdbc:oracle:thin:@IP:PORT:스키마이름

<GlobalNamingResources>

...

<Resource 
auth="Container" 
driverClassName="com.mysql.jdbc.Driver" // mysql, oracle, mariadb, tibero 등등 드라이버입력 
global="global과 name 똑같은 이름" 
maxActive="8"
maxIdle="8" 
maxWait="-1" 
minIdle="0" 
name="global과 name 똑같은 이름" 
password="DB패스워드" 
type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/myDB" username="DB아이디"/>

</GlobalNamingResources>

 

1.2 Tomcat 폴더의 context.xml 설정

1.2.1 ResourceLink 추가

name과 global 변수엔 server.xml에서 설정한 name,과 global 이름을 똑같이 넣는다.

<Context>

...
<ResourceLink name="위에 설정한 name, global이름과 동일" global="위에 설정한 name, global이름과 동일"
		auth="Container" type="javax.sql.DataSource" />

</Context

 

2. 개발 프로젝트(Eclipse 설정)

2.1 xml 파일에 설정

2.1.1 root-context.xml or context-datasource.xml

root-context.xml 또는 context-datasource.xml에 기존 DB접근하는 설정들을 지우거나 주석처리하고 아래의 코드를 추가한다.

또한, <value>에는 java:comp/env/jdbc/를 붙이고 server.xml에서 설정한 name, global이름과 동일하게 작성한다.

ex) server.xml에서 설정한 이름이 test라면 - java:comp/env/jdbc/test 

<bean id="dataSource"
		class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName">
			<value>java:comp/env/jdbc/name,global 이름과 동일</value>
		</property>
</bean>

 

3. 에러 발생 시 처리

3.1 DB Connection 에러

3.1.1 DB connector lib 가 없을 경우

만약 실행 시 connector에러가 발생한다면, Tomcat 폴더에 각 DB의 connector 라이브러리를 추가한다.

톰캣의 lib폴더에 접근한다.

경로 - apache-tomcat-8.5.59\lib

MySQL을 사용한다면 아래의 jar 파일을 톰캣의 lib폴더에 넣는다.

MySQL - mysql-connector-java.jar

 

 

3.2 UserDatabaseRealm 에러

3.2.1 org.apache.catalina.realm.UserDatabaseRealm Start 에러

만약 시작시 org.apache.catalina.realm.UserDatabaseRealm Start 에러가 발생한다면

Tomcat의 server.xml에 Realm부분의 className="org.apache.catalina.realm.UserDatabaseRealm" 을 아래와 같이 주석 처리한다.

<Realm className="org.apache.catalina.realm.LockOutRealm">
<!-- <Realm className="org.apache.catalina.realm.UserDatabaseRealm" -->
<!-- resourceName="UserDatabase" /> -->
</Realm>

 

'Develop > Spring' 카테고리의 다른 글

Spring Tomcat JNDI 설정  (0) 2020.11.17
Spring Security Custom Filter  (0) 2020.11.09
Spring security 로그인(DB에 있는 아이디 조회)  (0) 2019.11.02
Spring Mybatis + MariaDB(HikariCP) 설정  (0) 2019.10.24
Spring 3 에서 4로 migration  (0) 2019.10.22

개인적으로 개발하면서 자주사용하는 기본적인 JavaJavascript HTML DOM Methods 들이다.

이런게 있다로 정리만하고, 예제 사이트들이 충분히 많아 사이트로 대체.

 

1. document.getElementById(id);

일치하는 id 속성을 가진 요소를 찾는 문법.

 

developer.mozilla.org/ko/docs/Web/API/Document/getElementById

 

2. document.querySelector(selectors);

html 태그 및 생성한 CSS 클래스명으로 요소를 찾는 문법 (성능 문제 발생)

 

developer.mozilla.org/ko/docs/Web/API/Document/querySelector

 

3. document.getElementsByTagName(name);

html 태그로 요소를 찾는 문법

 

developer.mozilla.org/ko/docs/Web/API/Document/getElementsByTagName

 

4. document.getElementsByClassName(names)

태그의 클래스명으로 요소를 찾는 문법

 

developer.mozilla.org/ko/docs/Web/API/Element/getElementsByClassName

 

5. element.classList;

요소에 적용된 클래스들을 반환, add, remove, contains 이외 여러 문법을 사용할 수 있다.

 

developer.mozilla.org/ko/docs/Web/API/Element/classList

 

6. node.parentNode

선택한 요소의 부모 Node(html태그)를 선택할 수 있다.

 

developer.mozilla.org/en-US/docs/Web/API/Node/parentNode

 

7. node.childNodes; 

선택한 요소의 자식 Node(html태그)를 선택할 수 있다.

 

developer.mozilla.org/en-US/docs/Web/API/Node/childNodes

 

8. element.tagName;

선택한 요소의 태그명을 가져올 수 있다.

 

developer.mozilla.org/ko/docs/Web/API/Element/tagName

1. Spring Security Custom Filter

Spring Security 에 Custom Filter를 추가할 수 있다.

1.1 GenericFilterBean

기본 로그인 세팅 후 클래스를 생성하여 GenericFilterBean을 상속 받은 뒤 security-context.xml에 설정해주면 된다.

public class CustomFilter extends GenericFilterBean {

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		// TODO Auto-generated method stub

		chain.doFilter(request, response);
		
	}

}

 

1.2 security-context.xml

security-context.xml에 생성한 filter를 추가해 주면 된다.

	<security:http auto-config='true' use-expressions="true">
		<security:csrf disabled="true" />
		<security:intercept-url  />
		<security:form-login />
		<security:logout  />

		<security:custom-filter before="FORM_LOGIN_FILTER" ref="customFilter" />
	</security:http>

	<bean id="customFilter"
		class="com.test.app.filter.CustomFilter" />

 

before 대신 after, position을 사용할 수 있다. ref 에는 생성한 filter 클래스를 입력한다.

(현재 예제 : FORM_LOGIN_FILTER - 로그인 폼 인증 처리)

before - FORM_LOGIN_FILTER 인증 전에 생성한 filter 호출

after - FORM_LOGIN_FILTER 인증 후에 생성한 filter 호출

position - FORM_LOGIN_FILTER 대체를 생성한 filter로 대체 함.

position을 사용할 경우 security auto-config를 사용하지 않으므로 auto-config를 false로 해야 한다.

(auto-config : Automatically registers a login form, BASIC authentication, anonymous authentication, logout services, remember-me and servlet-api-integration. If set to "true", all of these capabilities are added (although you can still customize the configuration of each by providing the respective element). If unspecified, defaults to "false".)

 

2. Standard Filter Aliases and Ordering

FORM_LOGIN_FILTER 대신에 사용할 수 있는 항목들은 아래와 같다.

CHANNEL_FILTER ChannelProcessingFilter http/intercept-url@requires-channel
SECURITY_CONTEXT_FILTER SecurityContextPersistenceFilter http
CONCURRENT_SESSION_FILTER ConcurrentSessionFilter session-management/concurrency-control
LOGOUT_FILTER LogoutFilter http/logout
X509_FILTER X509AuthenticationFilter http/x509
PRE_AUTH_FILTER AstractPreAuthenticatedProcessingFilter Subclasses N/A
CAS_FILTER CasAuthenticationFilter N/A
FORM_LOGIN_FILTER UsernamePasswordAuthenticationFilter http/form-login
BASIC_AUTH_FILTER BasicAuthenticationFilter http/http-basic
SERVLET_API_SUPPORT_FILTER SecurityContextHolderAwareRequestFilter http/@servlet-api-provision
JAAS_API_SUPPORT_FILTER JaasApiIntegrationFilter http/@jaas-api-provision
REMEMBER_ME_FILTER RememberMeAuthenticationFilter http/remember-me
ANONYMOUS_FILTER AnonymousAuthenticationFilter http/anonymous
SESSION_MANAGEMENT_FILTER SessionManagementFilter session-management
EXCEPTION_TRANSLATION_FILTER ExceptionTranslationFilter http
FILTER_SECURITY_INTERCEPTOR FilterSecurityInterceptor http
SWITCH_USER_FILTER SwitchUserFilter N/A

 

참고 :

www.baeldung.com/spring-security-custom-filter

docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#ns-custom-filters

'Develop > Spring' 카테고리의 다른 글

Spring Tomcat JNDI 설정  (0) 2020.11.17
Spring Security Custom Filter  (0) 2020.11.09
Spring security 로그인(DB에 있는 아이디 조회)  (0) 2019.11.02
Spring Mybatis + MariaDB(HikariCP) 설정  (0) 2019.10.24
Spring 3 에서 4로 migration  (0) 2019.10.22

+ Recent posts