为http和https配置API Jersey

时间:2015-01-12 13:10:09

标签: java tomcat

可以通过http制作一些API,也可以通过https制作一些API,例如:

localhost:8080/MyWebServices/api/getSomething

以及另一个使用https的API,例如:

localhost:8443/MyWebServices/api/getB

我的API示例是:

@Path("/getSomething")
@GET
@ManagedAsync
@Produces(MediaType.APPLICATION_JSON)
public void getSomethingA(@Suspended final AsyncResponse response){
....
}

并且在Tomcat中我有连接器端口=“8080”,例如:

 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
   maxThreads="150" scheme="https" secure="true"
   clientAuth="false" sslProtocol="TLS" 
   keystoreFile="c:\mkyongkeystore"
   keystorePass="password" />

我必须配置web.xml吗?或者在哪里?有这些功能

1 个答案:

答案 0 :(得分:1)

如果两个连接器设置正确,您应该能够从端口8080以及8443命中您的API。

如果您希望明确保护应用程序的不同部分,可以在应用程序中使用一个或多个安全约束 web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>securedapp</web-resource-name>
        <url-pattern>/whatever/</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

这将阻止任何非ssl请求(与url模式匹配)访问webapp。