Tomcat中如何配置用户认证服务供C#客户端调用

今天心情不错,要知道我们在平时的工作日没这么长时间腻歪在一起。现在我把在前段日子做的项目里,遇到的一个小问题来好好的总结一下。因为我们这个项目是用Java写的服务端发布WebService,客户端呢使用C#来调用WebService(本人以前搞过一段时间C#客户端,还总结了一个MVP框架AngelFrame,发布在:http://www.cnblogs.com/wgp13x/p/99c2adc52d8f0dff30a038841ac32872.html),当然C#调用Java发布的WebService可以利用不少第三方项目,比如Axis2,我们就用的这个,网上也有很多介绍。不过我们项目要求,要使用证书,客户端需要安装证书才能正常使用WebService,这个网上很少有,下面就是我配置成功以后的总结啦,分享给大家。

摘要:本人找了好久也没在网上找到一份完整的讲Tomcat 7、Axic2发布带用户认证的WebService、C#客户端调用这个服务的配置步骤,一般都是讲java客户端调用。本文即是对这一过程完成后的一个总结,详细的一步步的教你怎么使用证书,在服务端发布带用户认证的服务,在C#客户端使用这一服务。

关键词:Tomcat,Axic2,WebServcie,Java,C#,服务,用户认证,证书

前提:已经使用axic2在Tomcat上发布了一个不带用户认证的WebServcie,并且C#客户端可以正确调用它。

需求:使用证书,将服务配置成带用户认证的,并且C#客户端可以正确使用它。

说明:以下是在Tomcat下配置用户认证的具体步骤。

步骤一:

首先,你得有对证书,证书的生成办法网上都有,我再略讲一遍吧。

我们使用JDK自带的keytool工具来生成证书。命令行进入JDK下的bin目录,运行keytool命令。里面的各种参数,生成路径、有效时间、别名、“您的名字与姓氏是什么?”、“您所在的州或省份名称是什么?”、“密码”等都可以按照需要来填,这里略过哈。

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\tomcat.keystore -validity 36500

keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore D:\lpClient.p12 -validity 36500

keytool -export -alias mykey -keystore D:\lpClient.p12 -storetype PKCS12 -storepass password -rfc -file D:\lpClient.cer

keytool -import -v -file D:\lpClient.cer -keystore D:\tomcat.keystore

keytool -list -keystore D:\tomcat.keystore

keytool -keystore D:\lpServer.keystore -export -alias tomcat -file D:\lpServer.cer

这样就生成了我们需要的三个文件:tomcat.keystore、lpClinet.p12、lpServer.cer。

步骤二:

在Tomcat conf\server.xml文件中添加以下代码段。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile="D:\\tomcat.keystore" keystorePass="password"
               truststoreFile="D:\\tomcat.keystore" truststorePass="password"  />

注意:clientAuth="false",先不进行客户端认证,使C#客户端能够正常添加服务引用,否则C#客户端添加不上服务引用。

在D:\目录下放置tomcat.keystore,密码按实际情况而配。          

步骤三:

在Tomcat conf\web.xml文件尾部添加以下代码段,使其默认使用Https协议,这样一来,所有的Http请求就会自动转变为Https请求啦。这步也可以略过,如果你的项目不强制使用Https协议的话。

<login-config>
        <auth-method>CLIENT-CERT</auth-method>
        <realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
        <web-resource-collection>
            <web-resource-name>SSL</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
            <user-data-constraint>
                <transport-guarantee>CONFIDENTIAL</transport-guarantee>
            </user-data-constraint>
</security-constraint>

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/csharp/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索axis2发布webservice
, c#
, 客户端
, keytool
, keystore
, c#客户端
, 证书
, 认证
, tomcat ssl 数字证书
, c# webservice java
, c# 服务
, wgp
, wcfc#代码c# webservice
java,c#,rsa
tomcat配置双向认证、tomcat配置用户名密码、tomcat用户配置、tomcat gui 用户配置、tomcat7用户配置,以便于您获取更多的相关知识。

时间: 2024-08-06 20:11:32

Tomcat中如何配置用户认证服务供C#客户端调用的相关文章

nginx 配置cxf webservice代理,客户端调用出错

问题描述 nginx 配置cxf webservice代理,客户端调用出错 在windows上,使用nginx 配置了cxf webservice的代理,但是在代码中使用JaxWsProxyFactoryBean方式去调用的时候无法调用通,但是若使用实际的地址可以调通.配置如下: upstream local_tomcat{ server 10.10.13.142:8550; server 10.1.241.182:8550 weight=5; } server { listen 8083; s

JNDI简介,jndi在tomcat中的配置,jdbc api简介,java连接数据库服务

连接数据库 JNDI(Java 命名和目录接口)   JNDI(Java 命名和目录接口) 分布式计算环境通常使用命名和目录服务来获取共享的组件和资源.命名和目录服务将名称与位置.服务.信息和资源关联起来.  命名服务提供名称-对象的映射.目录服务提供有关对象的信息,并提供定位这些对象所需的搜索工具.有许多命名和目录服务实现,并且到它们的接口是不同的. Java 命名和目录接口或 JNDI 提供了一个用于访问不同的命名和目录服务的公共接口.请参阅 URL java.sun.com/product

【IBM】使用 CAS 在 Tomcat 中实现单点登录

来源: IBM Developer http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/ 张 涛 (zzhangt@cn.ibm.com), 软件工程师, IBM 王 秉坤 (wangbk@cn.ibm.com), 软件工程师, IBM  简介: 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用

Tomcat服务器常用配置和HTTP简介

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.  -----------------------------------------------------------------------------

centos中修改tomcat中JVM非堆内存默认配置解决内存溢出

系统CentOS6.4下yum安装了tomcat6和jdk1.6,安装配置过程如下: http://www.111cn.net/sys/CentOS/72007.htm tomcat中部署两个项目A.B,同时部署时报内存溢出错误,系统CPU负载飙升,而单独部署A.B 和 只部署多个A或者只部署多个B项目系统运行正常. 查看日志报错:OutOfMemoryError: PermGen space-.   查询资料得知:是非堆溢出(永久保存区域溢出) 这种错误常见在web服务器对JSP进行pre c

在 Tomcat 中配置 SSL/TLS 以支持 HTTPS

本件详细介绍了如何通过几个简单步骤在 Tomcat 中配置 SSL/TLS .使用 JDK 生成自签名的证书,最终实现在应用中支持 HTTPS 协议. 生产密钥和证书 Tomcat 目前只能操作 JKS.PKCS11.PKCS12 格式的密钥存储库.JKS 是 Java 标准的"Java 密钥存储库"格式,是通过 keytool 命令行工具创建的.该工具包含在 JDK 中.PKCS12 格式一种互联网标准,可以通过 OpenSSL 和 Microsoft 的 Key-Manager 来

spring3mvc框架开发中resin和tomcat默认servelt配置处理静态资源

spring3mvc框架开发中resin和tomcat默认servelt配置 解决的问题: 让静态资源不通过DispatcherServlet处理,由容器默认servlet来处理.   在spring3mvc框架开发,web.xml如下配置时     <servlet>         <servlet-name>task</servlet-name>         <servlet-class>org.springframework.web.servle

web.xml-servelt如何在tomcat中配置?

问题描述 servelt如何在tomcat中配置? servlet用了书上的例子 package package01; import java.io.*; import javax.servlet.*; public class HelloServlet extends GenericServlet { public void service(ServletRequest request,ServletResponse response) throws ServletException,IOEx

j2ee框架-&amp;amp;lt;急&amp;amp;gt;项目中只配置了spring security,启tomcat 时报如下错

问题描述 <急>项目中只配置了spring security,启tomcat 时报如下错 严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/techingsys]] at org.apache.catalina.