WEB开发网
开发学院软件开发Java Java Web 服务: Metro 服务下的 WS-Security 阅读

Java Web 服务: Metro 服务下的 WS-Security

 2010-02-02 00:00:00 来源:WEB开发网   
核心提示: 在 清单 2 中,所有的回调必须使用相同的类,Java Web 服务: Metro 服务下的 WS-Security(4),清单 3 是回调类的代码,作用是检查每个回调请求的类型并恰当地为其赋值:清单3. 客户端回调代码publicclassUserPassCallbackHandlerimpl

在 清单 2 中,所有的回调必须使用相同的类。清单 3 是回调类的代码,作用是检查每个回调请求的类型并恰当地为其赋值:

清单3. 客户端回调代码

public class UserPassCallbackHandler implements CallbackHandler 
{ 
  public void handle(Callback[] callbacks) throws UnsupportedCallbackException { 
    for (int i = 0; i < callbacks.length; i++) { 
      if (callbacks[i] instanceof NameCallback) { 
        ((NameCallback)callbacks[i]).setName("libuser"); 
      } else if (callbacks[i] instanceof PasswordCallback) { 
        ((PasswordCallback)callbacks[i]).setPassword("books".toCharArray()); 
      } else { 
        throw new UnsupportedCallbackException(callbacks[i], 
          "Unsupported callback type"); 
      } 
    } 
  } 
}

您并不是必须 使用回调来设置用户名或密码。如果用户名和密码被赋予的是固定值,您可以直接在 <wssc:CallbackHandler> 元素中设置它们,方法是使用 default="yyy"(在这里,属性值即实际的用户名和密码)来替换 classname="xxx" 属性。

服务器端应用

在服务器端,WSIT 配置信息需要包含在 WSDL 服务定义中。如 “Metro 简介” 所述,服务 WSDL 的位置可以在服务 WAR 文件中的 WEB-INF/sun-jaxws.xml 里指定为一个参数。如果不使用 WSIT 特性,则 WSDL 是可选的;在这种情况下,WSDL 将在运行时自动生成。如果使用 WSIT 功能,则 WSDL 是必须的,并且必须包含为服务所用的特性配置 WSIT 所需的任意自定义扩展元素。清单 4 展示了 清单 1 WSDL 服务的策略部分,这次添加了一个 WSIT 自定义扩展元素来配置 UsernameToken 支持(以粗体显示):

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Java Web 服务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接