Есть ли способ заставить HTTPS для некоторых страниц в Spring-Security? - PullRequest
3 голосов
/ 28 марта 2011

В настоящее время я использую Tomcat 6 и Spring-Security 3.0.3.RELEASE без Apache.

Я могу принудительно установить https для страницы входа в систему, и она отлично работает.

Следующая конфигурация используется для предотвращения доступа к некоторым страницам по http.

<http use-expressions="true">
    <intercept-url pattern="/" access="permitAll" />
    <intercept-url pattern="/login" access="permitAll" requires-channel="https" />
    <intercept-url pattern="/spring_security_login" access="permitAll" requires-channel="https" />
    <intercept-url pattern="/users/new" access="permitAll" requires-channel="https" />
    <intercept-url pattern="/users/authorize/*" access="isAuthenticated()" />


    <!--<form-login /> -->
    <form-login  login-page="/login" />
    <logout />
    <remember-me />

    <!--
        Uncomment to enable X509 client authentication support <x509 />
    -->
    <!-- Uncomment to limit the number of sessions a user can have -->
    <session-management>
        <concurrency-control max-sessions="10000"
            error-if-maximum-exceeded="true" />
    </session-management>

</http>

Но если я попытаюсь получить доступ, например, к / покупателям / новым по ссылке не https http://localhost:8085/path/buyers/new Я получаю следующую ошибку:

The page isn't redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

    *   This problem can sometimes be caused by disabling or refusing to accept
          cookies.

Печенье разрешено, поэтому я думаю, что это не проблема. Аналогичная ошибка, которую я получил в Chrome при попытке получить доступ по ссылке выше.

В моей конфигурации порт 8085 не является портом ssl. SSL настроен на порт 8443 и работает нормально.

Я хочу, чтобы все попытки доступа к некоторым страницам перенаправлялись на https.

Любой совет будет высоко оценен.

С уважением, Tiho

1 Ответ

5 голосов
/ 28 марта 2011

Добавьте секцию сопоставления портов в конфигурацию http:

<http use-expressions="true">
 ...
    <port-mappings>
        <port-mapping http="8085" https="8443"/>
    </port-mappings>
</http>
...