我使用Fortify扫描代码并通过推荐
解决了这个问题建议: 利用Spring Security和SSL提供身份验证,授权,机密性和完整性。
所以我试图通过实例Spring Security和示例指南中的基本身份验证来解决这个问题 http://www.jayway.com/2008/09/30/spring-remoting-with-security-and-ssl/
我会得到像这样的弹簧配置
----服务器端配置---
远程server.xml中
<bean name="/testService" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="testService" />
<property name="serviceInterface" value="example.TestService" />
</bean>
安全的server.xml
<security:http auto-config="true">
<security:http-basic/>
<security:intercept-url pattern="/**" access="ROLE_ADMIN" />
</security:http>
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider>
<security:user-service id="uds">
<security:user name="testUser" password="testPassword" authorities="ROLE_ADMIN, ROLE_MANAGER" />
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
的web.xml
<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>
---客户端配置---
远程client.xml的
<bean id="rcaRemotingService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl" value="${endpoint.url}/testService"/>
<property name="serviceInterface" value="example.TestService"/>
<property name="username" value="${endpoint.user}"/>
<property name="password" value="${endpoint.password}"/>
</bean>
但它不起作用,工具总是像这样的问题
摘要:在remoting-servlet.xml的第5行,应用程序公开 spring bean作为远程服务。默认情况下,这些远程服务可以 不需要身份验证和传输到此的信息 服务是明文。这可能允许攻击者访问 特权操作或暴露敏感数据。
接收器: remote-server.xml:5 null()
第5行:&lt; bean name =“/ testService”class =“org.springframework.remoting.caucho.HessianServiceExporter”&gt;&lt; property name =“service”ref =“testService”/&gt;
&lt; property name =“serviceInterface”value =“example.TestService”/&gt;
&LT; /豆腐&GT;