Skip to content
x240pc edited this page Aug 30, 2014 · 3 revisions

Tutorial 3 带有权限验证和IP白名单的 Json GSON RPC Server撰写方法(最佳实践)

Tutorial1 的基础上,我们可以控制访问权限。

用户名密码控制

在开放一个服务时,加上两个 property 信息,包括:userName 和 password

<bean class="com.github.knightliao.hermesjsonrpc.server.RpcExporter"
    scope="singleton">
    <property name="serviceInterfaceName"
        value="com.github.knightliao.hermesjsonrpc.demo.DemoServiceDriver" />
    <property name="serviceBean">
        <ref bean="demoServiceProxy" />
    </property>
    <property name="userName" value="hello" />
    <property name="password" value="hermesjsonrpc" />
</bean>

IP白名单

在开放一个服务时,加上一个属性: ipSet

<bean class="com.github.knightliao.hermesjsonrpc.server.RpcExporter"
    scope="singleton">
    <property name="serviceInterfaceName"
        value="com.github.knightliao.hermesjsonrpc.demo.DemoServiceDriver" />
    <property name="serviceBean">
        <ref bean="demoServiceProxy" />
    </property>
    <property name="userName" value="hello" />
    <property name="password" value="hermesjsonrpc" />
    <property name="ipSet">
        <set>
            <value>127.0.0.1</value>
        </set>
    </property>
</bean>

HELP界面:接口信息安全性

HELP(接口信息)一般是不希望不相干人看到的,因此,我们提供了IP白名单 :

<servlet>
    <display-name>json-rpc servlet</display-name>
    <servlet-name>jsonRpcServlet</servlet-name>
    <servlet-class>com.github.knightliao.hermesjsonrpc.server.RpcServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
    <init-param>
        <param-name>GET_REQUEST_IPS</param-name>
        <param-value>127.0.0.1</param-value>
    </init-param>
</servlet>

修改web.xml里的Servlet定义就行了。这样就只有本地才能看到HELP信息。非本地均会返回404哦。