Re: [Jetty-support] regd ssl client auth
manu mehrotra <[email protected]> Fri, 5 Oct 2012 16:36:37 -0700
| Newsgroups | gmane.comp.java.jetty.support |
|---|---|
| Message-ID | <CAOwm86iqFLKQihwTa0x3XaWjkQfyE9WfCKMyRLCCmg5z-F=gHQ@mail.gmail.com> |
--===============2077884377541387164==
Content-Type: multipart/alternative; boundary=20cf303640d7cecab904cb585730
--20cf303640d7cecab904cb585730
Content-Type: text/plain; charset=ISO-8859-1
Hi,
>
> I need to do ssl client-auth kind of use case using jetty.
>
> The client will be sending their certificate and I'll be registering them
> in a truststore and then the client can make new requests using the
> certificate.
>
> I have been able to implement everything but the problem is that after
> registering the certificate I have to restart jetty for that certificate to
> be loaded in.
>
> I don't want to restart jetty every time so I wrote some JMX code to
> restart the SslSocketConnector only. But now the trouble is that the
> original connection drops after the SslSocketConnector is restarted. If the
> connection drops then I can't send a response back to the client whose
> certificate I have just registered.
>
> Is there a way to read in certificates from the truuststore without
> restarting jetty?
>
> The way I restart SslSocketConnector using JMX is as under:
>
> public void refreshTrustStore() throws Exception {
> System.out.println("In refreshTrustStore");
> try{
> MBeanServer mBeanServer =
> ManagementFactory.getPlatformMBeanServer();
> Set names = mBeanServer.queryNames(new ObjectName("*:*"),
> null);
>
> Iterator it=names.iterator();
> while( it.hasNext()) {
> ObjectName oname= (ObjectName)it.next();
>
> MBeanInfo minfo = mBeanServer.getMBeanInfo(oname);
>
>
>
> if
> (minfo.getClassName().equals("org.mortbay.jetty.security.SslSocketConnector"))
> {
> System.out.println("found ssl socket connector...
> will try to restart it");
>
> System.out.println("Restarting SSL Connector
> on port ");
> Object params[] = {};
> String signature[] = {};
> ;
> /**
> * Stop and restart the connector to get it
> to re-read the certificate trustfile
> */
> mBeanServer.invoke(oname, "stop", params,
> signature);
> mBeanServer.invoke(oname, "start", params,
> signature);
>
> }
> }
> }
> catch (Exception e) {
> System.out.println("Did not restart SSL Connector: " + e);
> e.printStackTrace();
> throw e;
> }
>
> }
>
> Any help will be greatly appreciated.
>
> Thanks & Regards,
> Manu
>
>
--20cf303640d7cecab904cb585730
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: base64
PGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWls
X3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29s
aWQ7cGFkZGluZy1sZWZ0OjFleCI+SGksPGJyPjxicj5JIG5lZWQgdG8gZG8gc3NsIGNsaWVudC1h
dXRoIGtpbmQgb2YgdXNlIGNhc2UgdXNpbmcgamV0dHkuPGJyPjxicj5UaGUgY2xpZW50IHdpbGwg
YmUgc2VuZGluZyB0aGVpciBjZXJ0aWZpY2F0ZSBhbmQgSSYjMzk7bGwgYmUgcmVnaXN0ZXJpbmcg
dGhlbSBpbiBhIHRydXN0c3RvcmUgYW5kIHRoZW4gdGhlIGNsaWVudCBjYW4gbWFrZSBuZXcgcmVx
dWVzdHMgdXNpbmcgdGhlIGNlcnRpZmljYXRlLjxicj4KCjxicj5JIGhhdmUgYmVlbiBhYmxlIHRv
IGltcGxlbWVudCBldmVyeXRoaW5nIGJ1dCB0aGUgcHJvYmxlbSBpcyB0aGF0IGFmdGVyIHJlZ2lz
dGVyaW5nIHRoZSBjZXJ0aWZpY2F0ZSBJIGhhdmUgdG8gcmVzdGFydCBqZXR0eSBmb3IgdGhhdCBj
ZXJ0aWZpY2F0ZSB0byBiZSBsb2FkZWQgaW4uPGJyPjxicj5JIGRvbiYjMzk7dCB3YW50IHRvIHJl
c3RhcnQgamV0dHkgZXZlcnkgdGltZSBzbyBJIHdyb3RlIHNvbWUgSk1YIGNvZGUgdG8gcmVzdGFy
dCB0aGUgU3NsU29ja2V0Q29ubmVjdG9yIG9ubHkuIEJ1dCBub3cgdGhlIHRyb3VibGUgaXMgdGhh
dCB0aGUgb3JpZ2luYWwgY29ubmVjdGlvbiBkcm9wcyBhZnRlciB0aGUgU3NsU29ja2V0Q29ubmVj
dG9yIGlzIHJlc3RhcnRlZC4gSWYgdGhlIGNvbm5lY3Rpb24gZHJvcHMgdGhlbiBJIGNhbiYjMzk7
dCBzZW5kIGEgcmVzcG9uc2UgYmFjayB0byB0aGUgY2xpZW50IHdob3NlIGNlcnRpZmljYXRlIEkg
aGF2ZSBqdXN0IHJlZ2lzdGVyZWQuPGJyPgoKPGJyPklzIHRoZXJlIGEgd2F5IHRvIHJlYWQgaW4g
Y2VydGlmaWNhdGVzIGZyb20gdGhlIHRydXVzdHN0b3JlIHdpdGhvdXQgcmVzdGFydGluZyBqZXR0
eT88YnI+PGJyPlRoZSB3YXkgSSByZXN0YXJ0IFNzbFNvY2tldENvbm5lY3RvciB1c2luZyBKTVgg
aXMgYXMgdW5kZXI6PGJyPjxicj5wdWJsaWMgdm9pZCByZWZyZXNoVHJ1c3RTdG9yZSgpIHRocm93
cyBFeGNlcHRpb24gezxicj6goKAgoKCgIKCgIFN5c3RlbS5vdXQucHJpbnRsbigmcXVvdDtJbiBy
ZWZyZXNoVHJ1c3RTdG9yZSZxdW90Oyk7PGJyPgoKoKCgIKCgoCCgoCB0cnl7PGJyPqCgoCCgoKAg
oKCgIKCgIE1CZWFuU2VydmVyIG1CZWFuU2VydmVyID0gTWFuYWdlbWVudEZhY3RvcnkuZ2V0UGxh
dGZvcm1NQmVhblNlcnZlcigpOzxicj6goKAgoKCgIKCgoCCgoKAgU2V0IG5hbWVzID0gbUJlYW5T
ZXJ2ZXIucXVlcnlOYW1lcyhuZXcgT2JqZWN0TmFtZSgmcXVvdDsqOiomcXVvdDspLCBudWxsKTs8
YnI+PGJyPqCgoCCgoKAgoKCgoKCgoKAgSXRlcmF0b3IgaXQ9bmFtZXMuaXRlcmF0b3IoKTs8YnI+
CgqgoKAgoKCgIKCgoKCgoKCgIHdoaWxlKCBpdC5oYXNOZXh0KCkpIHs8YnI+oKCgIKCgoCCgoKCg
oKCgoKCgoCBPYmplY3ROYW1lIG9uYW1lPSAoT2JqZWN0TmFtZSlpdC5uZXh0KCk7PGJyPjxicj6g
oKAgoKCgIKCgoKCgoKCgoKCgIE1CZWFuSW5mbyBtaW5mbyA9IG1CZWFuU2VydmVyLmdldE1CZWFu
SW5mbyhvbmFtZSk7PGJyPjxicj6goKAgoKCgIKCgoKCgoKCgoKCgIDxicj6goKAgoKCgIKCgoKCg
oKCgoKCgIDxicj4KCqCgoCCgoKAgoKCgoKCgoKCgoKAgaWYgKG1pbmZvLmdldENsYXNzTmFtZSgp
LmVxdWFscygmcXVvdDtvcmcubW9ydGJheS5qZXR0eS5zZWN1cml0eS5Tc2xTb2NrZXRDb25uZWN0
b3ImcXVvdDspKSB7PGJyPqCgoCCgoKAgoKCgoKCgoKCgoKAgoKCgIFN5c3RlbS5vdXQucHJpbnRs
bigmcXVvdDtmb3VuZCBzc2wgc29ja2V0IGNvbm5lY3Rvci4uLiB3aWxsIHRyeSB0byByZXN0YXJ0
IGl0JnF1b3Q7KTs8YnI+Cgo8YnI+oKCgIKCgoCCgoKCgoKCgoKCgoKCgoKCgoKCgoCBTeXN0ZW0u
b3V0LnByaW50bG4oJnF1b3Q7UmVzdGFydGluZyBTU0wgQ29ubmVjdG9yIG9uIHBvcnQgJnF1b3Q7
KTs8YnI+oKCgIKCgoCCgoKCgoKCgoKCgoKCgoKCgoKCgoCBPYmplY3QgcGFyYW1zW10gPSB7fTs8
YnI+oKCgIKCgoCCgoKCgoKCgoKCgoKCgoKCgoKCgoCBTdHJpbmcgc2lnbmF0dXJlW10gPSB7fTs8
YnI+oKCgIKCgoCCgoKCgoKCgoKCgoKCgoKCgoKCgoCA7PGJyPgoKoKCgIKCgoCCgoKCgoKCgoKCg
oKCgoKCgoKCgoCAvKio8YnI+oKCgIKCgoCCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgKiBTdG9wIGFu
ZCByZXN0YXJ0IHRoZSBjb25uZWN0b3IgdG8gZ2V0IGl0IHRvIHJlLXJlYWQgdGhlIGNlcnRpZmlj
YXRlIHRydXN0ZmlsZTxicj6goKAgoKCgIKCgoKCgoKCgoKCgoKCgoKCgoKCgoCAqLzxicj6goKAg
oKCgIKCgoKCgoKCgoKCgoKCgoKCgoKCgIG1CZWFuU2VydmVyLmludm9rZShvbmFtZSwgJnF1b3Q7
c3RvcCZxdW90OywgcGFyYW1zLCBzaWduYXR1cmUpOzxicj4KCqCgoCCgoKAgoKCgoKCgoKCgoKCg
oKCgoKCgoKAgbUJlYW5TZXJ2ZXIuaW52b2tlKG9uYW1lLCAmcXVvdDtzdGFydCZxdW90OywgcGFy
YW1zLCBzaWduYXR1cmUpOzxicj6goKAgoKCgIKCgoKCgoKCgoKCgoKCgoKCgoKAgPGJyPqCgoCCg
oKAgoKCgoKCgoKCgoKCgoKCgoKAgfTxicj6goKAgoKCgIKCgoKCgoKCgoKCgoKCgIH08YnI+oKCg
IKCgoCCgoKCgoKCgoKCgoCB9PGJyPqCgoCCgoKAgoKAgoKCgIGNhdGNoIChFeGNlcHRpb24gZSkg
ezxicj4KCqCgoCCgoKAgoKCgoKCgoKAgU3lzdGVtLm91dC5wcmludGxuKCZxdW90O0RpZCBub3Qg
cmVzdGFydCBTU0wgQ29ubmVjdG9yOiAmcXVvdDsgKyBlKTs8YnI+oKCgIKCgoCCgoKCgoKCgoCBl
LnByaW50U3RhY2tUcmFjZSgpOzxicj6goKAgoKCgIKCgoKCgoKCgIHRocm93IGU7PGJyPqCgoCCg
oKAgoKCgoKAgfTxicj6goKAgoKCgIKCgIDxicj6goKAgoKAgfTxicj48YnI+QW55IGhlbHAgd2ls
bCBiZSBncmVhdGx5IGFwcHJlY2lhdGVkLjxicj4KCjxicj5UaGFua3MgJmFtcDsgUmVnYXJkcyw8
YnI+TWFudTxicj48YnI+CjwvYmxvY2txdW90ZT48L2Rpdj48YnI+Cg==
--20cf303640d7cecab904cb585730--
--===============2077884377541387164==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
--===============2077884377541387164==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Jetty-support mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jetty-support
--===============2077884377541387164==--