JAX-RS Jersey で休憩サービスを開発しました。Tomcat 7.0 にデプロイしました。現在、Web サービスの URL をサード パーティのクライアントに公開しています。ホスト名、つまりサービスを使用しているクライアントホスト名の取得を含む検証メカニズムを配置したいと考えています。データベースに入力されたホスト名と一致させたいです。クライアントのホスト名を取得するには?
ここに私のweb.xmlがあります:
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/intellixservices/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>secureRESTFilter</filter-name>
<filter-class>com.astroved.intellix.security.SecurityFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>secureRESTFilter</filter-name>
<url-pattern>/intellixservices/*</url-pattern>
</filter-mapping>
今、Filter を実装する SecurityFilter クラスを作成しています。doFilter() メソッド内 -
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) req;
HttpServletResponse httpRes = (HttpServletResponse)res;
String url = "http://localhost:8888/IntellixWebApi/intellixservices/dnareport";
System.out.println("In security filter");
req.getRequestDispatcher(url).forward(req, res);
chain.doFilter(httpReq, httpRes);
}
しかし、次の URL への転送ではありません。クラスではResource
、xml/json 型を返しています。