1

こんにちは、この質問を投稿する前に、多くのスタックオーバーフローの質問を見て、すべてを試しましたが、何も機能しませんでした。openshift の無料利用枠 (3 ギア) を使用しています。eclipse-IDE で構成された openshift も SSH キーを提供しました。問題なく、openshift でアプリを実行でき、アプリが読み込まれます。ログイン中に、次の例外で失敗します " mysql - 通信リンク障害

以下のコードは、DBに接続するために使用しています

Class.forName("com.mysql.jdbc.Driver");  
    Connection con=DriverManager.getConnection(  
            "jdbc:mysql://127.13.78.130:3306/taskmgmt","adminJbwWd9z","IdgbNcEAjhdv");

Openshift では、資格情報とともに mysql ギアを確認できます。

ここに画像の説明を入力

openshift phpMyAdmin で、DB とテーブルを確認します。参照用に以下の画像を見つけてください。

ここに画像の説明を入力

だから私はEclipseのポートフォワーディングを試してみました.参考までに下の画像を見つけてください. ここに画像の説明を入力

ポートフォワーディング後、次のコードを使用してDBに接続しています。

Class.forName("com.mysql.jdbc.Driver");  
    Connection con=DriverManager.getConnection(  
            "jdbc:mysql://127.0.0.1:3306/taskmgmt","adminJbwWd9z","IdgbNcEAjhdv");

接続は成功しましたが、Spring-Security 経由で接続中に例外が発生しました。

ログイン後、画面に次のエラーメッセージが表示されます。 ここに画像の説明を入力

DB 接続用の spring-security xml を見つけてください。

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

<!-- This will activate the expressions in spring valid expr are :   hasRole,hasAnyRole,hasPermission,PermitAll -->
<http use-expressions="true" auto-config="true">
    <!-- Allow login only user must have ROLE_USER -->
    <!-- The below line is for spring basic authentication without using custom 
        controller * jsp <http-basic/> -->
    <!-- For custom login use the below code -->
    <intercept-url pattern="/login*" access="permitAll" /> <!-- Without this it won't allow the access for login.html because in the 
        above we restrained URL with ROLE_USER -->
    <intercept-url pattern="/resources/**" access="permitAll"/>
    <intercept-url pattern="/loginFailed.html" access="permitAll" />
    <intercept-url pattern="/logout.html" access="permitAll" />
    <intercept-url pattern="/signup.html" access="permitAll" />
    <intercept-url pattern="/signupSubmit.html" access="permitAll" />
    <intercept-url pattern="/session-expired.html" access="permitAll" />
    <intercept-url pattern="/updatepassword*" access="permitAll"/>
    <intercept-url pattern="/changePassword*" access="permitAll"/>
    <intercept-url pattern="/403.html" access="permitAll" />
    <!--<intercept-url pattern="/**" access="ROLE_USER"/> if we activate expression 
        then we should use hasRole or hasAnyRole or hasPermission or PermitAll in 
        access other wise it ill throw http status 500 failed to evaluate expr error -->
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>
    <form-login login-page="/login.html"
        authentication-failure-url="/loginFailed.html" authentication-success-handler-ref="successAuthenticationHandler"/>
    <logout logout-success-url="/logout.html" delete-cookies="JSESSIONID"/>
    <access-denied-handler error-page="/403.html" />
    <remember-me key="myAppKey" user-service-ref="userDetailsService"/>
    <!-- This will prevent a user from logging in multiple times - a second login will cause the first to be invalidated. 
    Often you would prefer to prevent a second login, in which case you can use -->
     <session-management invalid-session-url="/session-expired.html">
       <concurrency-control max-sessions="1" error-if-maximum-exceeded="true" expired-url="/session-expired.html"/>
     </session-management>
</http>
<!-- Password Hashing Bean -->
<beans:bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" >
     <beans:constructor-arg name="strength" value="12" />
</beans:bean>
<!-- After successfull login using the below handler we will map to corresponding screen -->
<beans:bean id="successAuthenticationHandler"
    class="com.taskmanagement.authentication.handler.SuccessAuthenticationHandler"/>

<authentication-manager>
    <!-- <authentication-provider user-service-ref="userDetailsService"/> -->
    <authentication-provider>
        <!-- The below code will configure md5 <password-encoder hash="md5"></password-encoder> -->
        <!-- The below code will configure bcrypt -->
        <password-encoder ref="passwordEncoder"></password-encoder>
        <!--<jdbc-user-service data-source-ref="dataSource" />  -->
        <jdbc-user-service data-source-ref="dataSource"  
users-by-username-query="select username,password, enabled from users where username=?"  
authorities-by-username-query="select username, authority from authorities where username =?  " />
    </authentication-provider>
</authentication-manager>
<beans:bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver"></beans:property>
    <beans:property name="url"
        value="jdbc:mysql://127.0.0.1:3306/taskmgmt"></beans:property>
    <beans:property name="username" value="adminJbwWd9z"></beans:property>
    <beans:property name="password" value="IdgbNcEAjhdv"></beans:property>
</beans:bean>
<beans:bean id="userDetailsService"
    class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
    <beans:property name="dataSource" ref="dataSource"></beans:property>
</beans:bean>

この問題を解決するために私を助けてください。

4

0 に答える 0