OSGi
Apache Karaf にデプロイされたバンドルがあります。BASIC
認証を使用してユーザーの資格情報を確認しています。ここに私の設定Spring
ファイルがあります:
<beans...>
...
<bean id="loginService" class="org.eclipse.jetty.plus.jaas.JAASLoginService">
<property name="name" value="karaf"/>
<property name="loginModuleName" value="karaf"/>
<property name="roleClassNames">
<list>
<value>org.apache.karaf.jaas.modules.RolePrincipal</value>
</list>
</property>
</bean>
<bean id="identityService" class="org.eclipse.jetty.security.DefaultIdentityService"/>
<bean id="constraint" class="org.eclipse.jetty.http.security.Constraint">
<property name="name" value="BASIC"/>
<property name="roles" value="admin"/>
<property name="authenticate" value="true"/>
</bean>
<bean id="constraintMapping" class="org.eclipse.jetty.security.ConstraintMapping">
<property name="constraint" ref="constraint"/>
<property name="pathSpec" value="/*"/>
</bean>
<bean id="securityHandler" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
<property name="authenticator">
<bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator"/>
</property>
<property name="constraintMappings">
<list>
<ref bean="constraintMapping"/>
</list>
</property>
<property name="loginService" ref="loginService"/>
<property name="strict" value="false"/>
<property name="identityService" ref="identityService"/>
</bean>
<camelContext trace="true" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="jetty:http://0.0.0.0:8282/services?handlers=securityHandler&matchOnUriPrefix=true"/>
<transform>
<constant><html><body>Hello from Fuse ESB server</body></html></constant>
</transform>
</route>
</camelContext>
....
</beans>
この URL を入力するhttp://localhost:8282/services
と、ブラウザに基本認証ウィンドウが表示され、ユーザー名とパスワードが要求されます。ここまではOKです。
ユーザーの認証情報はuser.properties
ofApache Karaf
&{base.dir}/etc/
ディレクトリに設定されています。そこから、オーセンティケーターはユーザー資格情報を取得してチェックします。
私の問題は、データベースからの資格情報を使用するために、オーセンティケーターを何らかの方法でオーバーライドする必要があることです。どこから始めればよいかわからないため、これを機能させるためにまだ何も試していません。私はインターネットを検索しようとしましたが、これを機能させる方法や、どこから始めればよいかについての手がかりがありません。したがって、誰かがこれを行う方法について正しい方向に向けることができれば、それは非常にありがたいです.