2014-06-18 3 views
0

심각한 문제가 있습니다 ... 저는 Spring11, Hibernate3 및 AngularJS와 함께 weblogic 11g에서 응용 프로그램을 만들려고합니다. 2 일 동안, 나는 내 앱을 작동시키는 데 어려움이 있었다. 마침내, 나는이 일을 할 수있었습니다! 내가 나 자신을 인증하고, 내가 각 페이지에서 응용 프로그램에 이동 봄 보안 ... 로그인 페이지에서 저를 리디렉션 왜 난 정말 모를 때 문제가스프링 보안, 항상 로그인 페이지로 리디렉션

하지만, ...

의 Web.xml :

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/spring.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 

    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <listener> 
    <listener-class>com.bla.Init</listener-class> 
</listener> 

    <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
      /WEB-INF/spring/spring.xml 
     </param-value> 
    </context-param> 

    <filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    <filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <filter> 
    <filter-name>encodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    </filter> 
    <filter-mapping> 
    <filter-name>encodingFilter</filter-name> 
    <servlet-name>dispatcher</servlet-name> 
    </filter-mapping> 
    <jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.jsp</url-pattern> 
     <page-encoding>UTF-8</page-encoding> 
     <trim-directive-whitespaces>true</trim-directive-whitespaces> 
    </jsp-property-group> 
    </jsp-config> 
</web-app> 

Spring.xml

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
          http://www.springframework.org/schema/context http://www.springframework.org/schema/task/spring-context-3.0.xsd"> 

    <!-- Basic Configurations --> 
    <context:annotation-config/> 

    <context:component-scan base-package="test.model"/> 
    <context:component-scan base-package="test.repository"/> 
    <context:component-scan base-package="test.service"/> 
    <context:component-scan base-package="test.controller"/> 

    <!-- SpringMVC --> 
    <import resource="spring-mvc.xml"/> 

    <!-- SpringData --> 
    <import resource="spring-jpa.xml"/> 

    <!-- SpringSecurity --> 
    <import resource="spring-security.xml"/> 
</beans> 

스프링 security.xml :

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:security="http://www.springframework.org/schema/security" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd"> 

    <security:global-method-security secured-annotations="enabled" /> 

    <security:http auto-config="true" use-expressions="true" access-denied-page="/login?error=403"> 

     <security:intercept-url pattern="/" access="permitAll" /> 
     <security:intercept-url pattern="/protected/**" access="isFullyAuthenticated()" /> 

     <security:form-login login-page="/login" authentication-failure-url="/login?error=403" default-target-url="/protected/home" /> 

     <security:logout invalidate-session="true" logout-success-url="/login" logout-url="/logout" /> 
    </security:http> 

    <security:authentication-manager> 
     <security:authentication-provider> 
      <security:jdbc-user-service 
        data-source-ref="myRapportDataSource" 
        users-by-username-query="select nni, password, enabled from system_user where nni = ?" 
        authorities-by-username-query="select u.nni as login, u.user_role as role from system_user u where u.nni = ?" /> 
     </security:authentication-provider> 
    </security:authentication-manager> 
</beans> 

내가 너무 스프링 mvc.xml 추가 : 처음에

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
          http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    <mvc:annotation-driven/> 
    <mvc:default-servlet-handler/> 

    <!-- Login Interceptor --> 
    <mvc:interceptors> 
     <mvc:interceptor> 
      <mvc:mapping path="/protected/**"/> 
      <bean class="gram.interceptor.LoginInterceptor"/> 
     </mvc:interceptor> 
     <!-- workaround to fix IE8 problem --> 
     <bean id="webContentInterceptor" 
       class="org.springframework.web.servlet.mvc.WebContentInterceptor"> 
      <property name="cacheSeconds" value="0"/> 
      <property name="useExpiresHeader" value="true"/> 
      <property name="useCacheControlHeader" value="true"/> 
      <property name="useCacheControlNoStore" value="true"/> 
     </bean> 
    </mvc:interceptors> 
</beans> 

를,이 응용 프로그램은 톰캣 6이고 잘 작동,하지만 난 weblogic로 마이 그 레이션해야합니다 10.3.6

아이디어가 있습니까? 나는 거의

매우 / 일치 만 URL이 permitAll 액세스 할 수 있습니다
<security:intercept-url pattern="/" access="permitAll" /> 

으로 내 문제

+0

'pattern = "/ **"access = "permitAll"'을 사용해보십시오. – sp00m

+0

내 하나님 sp00m, 당신은 나를 구 했어요! 나는 단지 그 ... 고마워요! – user3753210

답변

4

살펴보고 모든 일을 주셔서 감사합니다 ... despered하고 있습니다. 따라서 필요한 것은 실제로입니다 :

<security:intercept-url pattern="/protected/**" access="isFullyAuthenticated()" /> 
<security:intercept-url pattern="/**" access="permitAll" /> 
관련 문제