tag:blogger.com,1999:blog-12149523786169806202024-03-14T01:56:18.363-07:00vBrandenVMware and StuffAnonymoushttp://www.blogger.com/profile/14594102938206957677noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-1214952378616980620.post-88003869665386774102017-11-12T11:59:00.000-08:002017-11-12T12:10:02.821-08:00Javascript Array intersectionSimple Javascript Array intersection<br />
<br />
Example <a href="https://es6console.com/j9x6jb28/">Fiddle</a><br />
<br />
<!-- HTML generated using hilite.me --><div style="background: #000000; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #00cd00">function</span> <span style="color: #cccccc">intersection</span> <span style="color: #cccccc">(...args)</span> <span style="color: #cccccc">{</span>
<span style="color: #cdcd00">if</span> <span style="color: #cccccc">(args.length</span> <span style="color: #3399cc"><</span> <span style="color: #cd00cd">2</span><span style="color: #cccccc">)</span> <span style="color: #cdcd00">return</span> <span style="color: #cccccc">[]</span>
<span style="color: #cdcd00">const</span> <span style="color: #cccccc">source</span> <span style="color: #3399cc">=</span> <span style="color: #cccccc">args.shift()</span>
<span style="color: #cdcd00">const</span> <span style="color: #cccccc">src</span> <span style="color: #3399cc">=</span> <span style="color: #cd00cd">Array</span><span style="color: #cccccc">.isArray(source)</span> <span style="color: #3399cc">?</span> <span style="color: #cccccc">source</span> <span style="color: #3399cc">:</span> <span style="color: #cccccc">[]</span>
<span style="color: #cdcd00">return</span> <span style="color: #cccccc">src.reduce((intersections,</span> <span style="color: #cccccc">value,</span> <span style="color: #cccccc">index,</span> <span style="color: #cccccc">list)</span> <span style="color: #3399cc">=></span> <span style="color: #cccccc">{</span>
<span style="color: #cdcd00">const</span> <span style="color: #cccccc">intersects</span> <span style="color: #3399cc">=</span> <span style="color: #cccccc">args.reduce((state,</span> <span style="color: #cccccc">array)</span> <span style="color: #3399cc">=></span> <span style="color: #cccccc">{</span>
<span style="color: #cdcd00">return</span> <span style="color: #cd00cd">Array</span><span style="color: #cccccc">.isArray(array)</span> <span style="color: #3399cc">?</span>
<span style="color: #cccccc">state</span> <span style="color: #3399cc">&&</span> <span style="color: #cccccc">array.indexOf(value)</span> <span style="color: #3399cc">!==</span> <span style="color: #3399cc">-</span><span style="color: #cd00cd">1</span> <span style="color: #3399cc">:</span>
<span style="color: #cccccc">state</span>
<span style="color: #cccccc">},</span> <span style="color: #cdcd00">true</span><span style="color: #cccccc">)</span>
<span style="color: #cdcd00">if</span> <span style="color: #cccccc">(intersects</span> <span style="color: #3399cc">&&</span> <span style="color: #cccccc">intersections.indexOf(value)</span> <span style="color: #3399cc">===</span> <span style="color: #3399cc">-</span><span style="color: #cd00cd">1</span><span style="color: #cccccc">)</span> <span style="color: #cccccc">{</span>
<span style="color: #cccccc">intersections.push(value)</span>
<span style="color: #cccccc">}</span>
<span style="color: #cdcd00">return</span> <span style="color: #cccccc">intersections</span>
<span style="color: #cccccc">},</span> <span style="color: #cccccc">[])</span>
<span style="color: #cccccc">}</span>
</pre></div>
Anonymoushttp://www.blogger.com/profile/14594102938206957677noreply@blogger.com0tag:blogger.com,1999:blog-1214952378616980620.post-31871458667844418332017-11-11T23:38:00.003-08:002017-11-12T12:04:20.340-08:00Javascript Promise ReductionSimple function to perform a reduce on an iterable of Promise/Non-Promise objects.<br />
<br />
<!-- HTML generated using hilite.me --><div style="background: #000000; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #00cd00">function</span> <span style="color: #cccccc">promiseReduce</span> <span style="color: #cccccc">(iterable,</span> <span style="color: #cccccc">reducer,</span> <span style="color: #cccccc">initialValue)</span> <span style="color: #cccccc">{</span>
<span style="color: #cdcd00">return</span> <span style="color: #cccccc">iterable.reduce((previousPromise,</span> <span style="color: #cccccc">currentPromise,</span> <span style="color: #cccccc">count)</span> <span style="color: #3399cc">=></span> <span style="color: #cccccc">{</span>
<span style="color: #cdcd00">return</span> <span style="color: #cccccc">Promise.resolve(previousPromise).then(result</span> <span style="color: #3399cc">=></span> <span style="color: #cccccc">{</span>
<span style="color: #cdcd00">return</span> <span style="color: #cccccc">Promise.resolve(currentPromise).then(current</span> <span style="color: #3399cc">=></span> <span style="color: #cccccc">{</span>
<span style="color: #cdcd00">return</span> <span style="color: #cccccc">reducer(result,</span> <span style="color: #cccccc">current,</span> <span style="color: #cccccc">count)</span>
<span style="color: #cccccc">})</span>
<span style="color: #cccccc">})</span>
<span style="color: #cccccc">},</span> <span style="color: #cccccc">Promise.resolve(initialValue))</span>
<span style="color: #cccccc">}</span>
</pre></div>
See <a href="https://es6console.com/j9wg6rwa/" target="_blank">fiddle</a>
<br />
Or you can use Bluebird.js
Anonymoushttp://www.blogger.com/profile/14594102938206957677noreply@blogger.com0tag:blogger.com,1999:blog-1214952378616980620.post-20667391196962971262017-09-14T12:18:00.001-07:002017-09-14T12:18:11.870-07:00Configuring Netgear Orbi with at&t GigaPower modem<h2 style="height: 0px;">
<br /></h2>
<h2>
Gigabit internet</h2>
<div>
<br /></div>
<div>
I recently upgraded to at&t gigabit internet from a 24 plan. This required me upgrade my current modem. I use quite a bit of port-forwarding for things like plex, lab servers, etc. and had a bit if difficulty getting the new modem to pass all of the traffic to my Orbi so that the Orbi can forward the traffic to the correct hosts.</div>
<div>
<br />
Here are the steps I took in order to get everything working.<br />
<br />
<h3>
Equipment</h3>
<div>
<ul>
<li>Netgear Orbi RBR50 + 2 RBS50 satellites</li>
<li>ARRIS BGW210-700 Modem/Router aka at&t modem</li>
</ul>
</div>
<h3>
Basic Setup</h3>
</div>
<div>
WAN <= at&t model <= Orbi Star Network <= LAN</div>
<div>
<br /></div>
<h3>
Steps</h3>
<div>
<br />The at&t modem has a default local address space that conflicts with the Orbi's (192.168.1.0/24). If you plug the Orbi into the router, the Orbi will detect this and change its own address space to 10.0.0.0/24. If this is ok with you, please proceed. However I had a lot of static IPs on 192.168.1.0/24 so I opted to change the at&t modem address space to 192.168.0.0/24.<br /><br />If your Orbi changed its subnet to 10.0.0.0/24. Go into the Orbi and change it back.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr-HZf_fSafiNOrwOpR1lz97ZPqsUr4lvHdNGcKtIUDMEXW_SsRZ1f2AXS0OZfDcWm7sUNYFzKMpPs-GYSlFg6JNiUPjH56HeRiNJgxn3PTKUZZhCGlzpJlpFOHPtGyXlJOsKHKnHEE6O-/s1600/Screen+Shot+2017-09-14+at+12.01.03+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr-HZf_fSafiNOrwOpR1lz97ZPqsUr4lvHdNGcKtIUDMEXW_SsRZ1f2AXS0OZfDcWm7sUNYFzKMpPs-GYSlFg6JNiUPjH56HeRiNJgxn3PTKUZZhCGlzpJlpFOHPtGyXlJOsKHKnHEE6O-/s320/Screen+Shot+2017-09-14+at+12.01.03+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br />Now make sure the Orbi is plugged into the at&t modem and then set up IP Passthrough in DHCPS-Fixed mode selecting your Orbi router as the device. This will assign the Orbi router the public IP address of the at&t modem<br /><div>
<br /></div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1AfwGraY6gCkIjoVFxi-3RHDAIMEpFmrwf8aWnvHlYBDWfs4T4E_aZXuLDlOcp8NsuHYxIAUKJhPcQMkpjnReivJOlS6VfbV0HOmpajB6jxQTMJtvN44MEf1TpVL3KTeofnjTiy9i-7UD/s1600/+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1AfwGraY6gCkIjoVFxi-3RHDAIMEpFmrwf8aWnvHlYBDWfs4T4E_aZXuLDlOcp8NsuHYxIAUKJhPcQMkpjnReivJOlS6VfbV0HOmpajB6jxQTMJtvN44MEf1TpVL3KTeofnjTiy9i-7UD/s320/+.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="" style="clear: both; text-align: left;">
Now log into your Orbi and reboot it.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmrp66ZlOyLqIczzLbVfyqkXKemdeoYq4eSriNycaZPow8CY9wX_oHNKswr3e9F33sUDlkccQghwUMTmYibIxEbVkxZpI195BmZRAgKmnb2189blckWpflgXcRk8NuDChCUQ8mD9FXS_mk/s1600/Screen+Shot+2017-09-14+at+12.12.59+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmrp66ZlOyLqIczzLbVfyqkXKemdeoYq4eSriNycaZPow8CY9wX_oHNKswr3e9F33sUDlkccQghwUMTmYibIxEbVkxZpI195BmZRAgKmnb2189blckWpflgXcRk8NuDChCUQ8mD9FXS_mk/s320/Screen+Shot+2017-09-14+at+12.12.59+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Once your Orbi is back up the IP Address listed in the INTERNET PORT should no longer be on the 192.168.1.0/24 or 10.0.0.0/24 subnet. If it is you will need to release and renew the INTERNET PORT IP address by clicking the CONNECTION STATUS button which will open a new window where you can RELEASE the IP and then RENEW it. The address should now be the same as the at&t router and port forwarding should work.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Good luck!</div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/14594102938206957677noreply@blogger.com2tag:blogger.com,1999:blog-1214952378616980620.post-52302985054219487562015-03-28T21:42:00.001-07:002015-06-19T12:55:33.346-07:00Creating a Jersey WebService In Gatein 3.8.1/JBOSSI have recently been playing around with <a href="http://gatein.jboss.org/" target="_blank">GateIn</a> at work. <a href="http://gatein.jboss.org/" target="_blank">GateIn</a> allows you to build a custom portal based on portlets you can develop in Java. Since it is built on JBOSS it offers things like application clustering and SSO, so its a pretty nice open source product.<br />
<br />
However, being new to JBOSS (and java development in general) I ran into a few frustrating issues while trying to deploy a webservice application. After a few days of plugging away at it and reading some helpful blogs I was able to get it working. The issue is that <a href="http://gatein.jboss.org/" target="_blank">GateIn</a>/JBOSS loads its own implementation of JAX-RS and will not allow you to load any others unless you explicitly say not to in your webapp.<br />
<br />
In this blog I will go over how to create a simple REST web service using Jersey that can be deployed and used in <a href="http://gatein.jboss.org/" target="_blank">GateIn</a>/JBOSS<br />
<br />
Prerequisites (what I will be using)<br />
<br />
<ul>
<li>Eclipse Luna with Dynamic Web Project Installed</li>
<li>GateIn 3.8.1 JBOSS available <a href="http://gatein.jboss.org/download" target="_blank">here</a></li>
<li>Java SDK (The project will need to be set to use 1.7 compatibility)</li>
</ul>
<div>
Project Setup</div>
<div>
<br /></div>
<div>
1. Create a new Dynamic Web Project with the Project name "hellows" and select next</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIwxX929ObS4_imahTLdOi_eT1GTL97O2ku66Df8yb3zcbOSpAggg8DRjvMhMoOQo7JLt5kChLCOCIQnk8mkDcz8YgSMyQNDQt_aeGGWM2WzaFMPF8JCWTqCqrKY8ZpkP0_HwcWUSL7Da2/s1600/Screen+Shot+2015-03-28+at+7.52.46+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIwxX929ObS4_imahTLdOi_eT1GTL97O2ku66Df8yb3zcbOSpAggg8DRjvMhMoOQo7JLt5kChLCOCIQnk8mkDcz8YgSMyQNDQt_aeGGWM2WzaFMPF8JCWTqCqrKY8ZpkP0_HwcWUSL7Da2/s1600/Screen+Shot+2015-03-28+at+7.52.46+PM.png" width="249" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
2. Select next again to accept the default output folder</div>
<div class="separator" style="clear: both; text-align: left;">
3. Select the checkbox next to Generate web.xml deployment descriptor and leave the rest of the defaults and then select finish to create the project</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-WdG7V82RwOwHr-9G_iSENIOgetMZbZafmBXQ-hEmzD7K_jE72ulbUkQfRcGNIk2wUbpy1FKyDs4KEG0mR5VxY4qyA4NshWgk0-KNErsVDwnWgRMr1tdQggGLEcD7wmfn1eCdizVqnZet/s1600/Screen+Shot+2015-03-28+at+7.56.34+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-WdG7V82RwOwHr-9G_iSENIOgetMZbZafmBXQ-hEmzD7K_jE72ulbUkQfRcGNIk2wUbpy1FKyDs4KEG0mR5VxY4qyA4NshWgk0-KNErsVDwnWgRMr1tdQggGLEcD7wmfn1eCdizVqnZet/s1600/Screen+Shot+2015-03-28+at+7.56.34+PM.png" width="249" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Since we will be using Maven to manage the dependencies, right click on the hellows project and select Configure > Convert to Maven Project</div>
<div class="separator" style="clear: both; text-align: left;">
5. In the Create new POM window change the Group Id to com.vbranden (or whatever you like) and leave the rest of the defaults. Then select finish to convert the project</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg77AoE06Ytow4wk9cZ2PolWM7ERZK_aKi5ZOWE_9h4vjprpg0dKT5Zcgz6PI6S_-FKdm5rtF97ZDhhrepXbTOlYjL8CHUS47QVDLq8c7pQf8OOqa3yXijnCuJN18GEAUN4B5GGkddezxqx/s1600/Screen+Shot+2015-03-28+at+8.01.47+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg77AoE06Ytow4wk9cZ2PolWM7ERZK_aKi5ZOWE_9h4vjprpg0dKT5Zcgz6PI6S_-FKdm5rtF97ZDhhrepXbTOlYjL8CHUS47QVDLq8c7pQf8OOqa3yXijnCuJN18GEAUN4B5GGkddezxqx/s1600/Screen+Shot+2015-03-28+at+8.01.47+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
6. Open the hellows/pom.xml file, select the pom.xml tab on the bottom and replace it with the following then save. This will download the dependencies and place them in the project's classpath</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Courier New, Courier, monospace;">pom.xml</span></div>
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSpb0egugCqtETbfTG5Oe_h0leDPBK3WG3NQ3KZ7GvpPFSlJ4hEJKNNCdKN9eWF-EU1DWFSn821b0vpAyme_Kdx-e1CTin8zTIX6q33t-lPfBhQPgogrz6IzPHmp4TyJHKC7HrPRn5iA6/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.horiuchi</groupId>
<artifactId>testws</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.17</version>
</dependency>
</dependencies>
</project>
</code></pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
7. Update the web.xml file in hellows/WebContent/WEB-INF and replace it with the following and save</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Courier New, Courier, monospace;">web.xml</span></div>
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSpb0egugCqtETbfTG5Oe_h0leDPBK3WG3NQ3KZ7GvpPFSlJ4hEJKNNCdKN9eWF-EU1DWFSn821b0vpAyme_Kdx-e1CTin8zTIX6q33t-lPfBhQPgogrz6IzPHmp4TyJHKC7HrPRn5iA6/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>hellows</display-name>
<servlet>
<servlet-name>hellows servlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.vbranden.HelloApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hellows servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.resources</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.providers</param-name>
<param-value>false</param-value>
</context-param>
</web-app>
</code></pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
8. Now we need to create the actual web service. First we will create the object model for our hellows response. Create a new class under Java Resources/src named HelloObject.java and modify the package to com.vbranden.models. Keep the rest of the defaults</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6M4PuCo4EOOKnjrWDWMtCFnTLX-F4Z1YS9AG571UA4H8bvmX9NRNjITYTiR0CngujViEPHKNur2fYFZsi_w0Q-or9OFGVzUEDc6GpoOdFRDh5iM-uKjayWvsRorrYgt-Rn6aOHy0QagMh/s1600/Screen+Shot+2015-03-28+at+9.08.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6M4PuCo4EOOKnjrWDWMtCFnTLX-F4Z1YS9AG571UA4H8bvmX9NRNjITYTiR0CngujViEPHKNur2fYFZsi_w0Q-or9OFGVzUEDc6GpoOdFRDh5iM-uKjayWvsRorrYgt-Rn6aOHy0QagMh/s1600/Screen+Shot+2015-03-28+at+9.08.42+PM.png" width="265" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Replace the code for HelloObject.java with the following</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Courier New, Courier, monospace;">HelloObject.java</span></div>
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSpb0egugCqtETbfTG5Oe_h0leDPBK3WG3NQ3KZ7GvpPFSlJ4hEJKNNCdKN9eWF-EU1DWFSn821b0vpAyme_Kdx-e1CTin8zTIX6q33t-lPfBhQPgogrz6IzPHmp4TyJHKC7HrPRn5iA6/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> package com.vbranden.models;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "HelloObject")
public class HelloObject {
private String type;
private String message;
public HelloObject() {}
public HelloObject(String type, String message) {
this.setType(type);
this.setMessage(message);
}
/**
* @return the message
*/
@XmlElement
public String getMessage() {
return message;
}
/**
* @param message the message to set
*/
public void setMessage(String message) {
this.message = message;
}
/**
* @return the type
*/
@XmlElement
public String getType() {
return type;
}
/**
* @param type the type to set
*/
public void setType(String type) {
this.type = type;
}
}
</code></pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
9. Create a new class under Java Resources/src named HelloResource.java and modify the package to com.vbranden.resources. Keep the rest of the defaults</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijyrJRSNJqaaPCTKyZMyrlNEaxeqLYa8XpGY8u632fOfj-n_19EQjoOm0UPquMt4jGSqywOVCJnWAlHCWYYkSZjADkMFOUJ6nZxrYkR19ZIoCLHu7xEJzVBSffDTMoNUaQUrR6Nen_wM7u/s1600/Screen+Shot+2015-03-28+at+9.17.01+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijyrJRSNJqaaPCTKyZMyrlNEaxeqLYa8XpGY8u632fOfj-n_19EQjoOm0UPquMt4jGSqywOVCJnWAlHCWYYkSZjADkMFOUJ6nZxrYkR19ZIoCLHu7xEJzVBSffDTMoNUaQUrR6Nen_wM7u/s1600/Screen+Shot+2015-03-28+at+9.17.01+PM.png" width="265" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Replace the code for HelloResource.java with the following</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Courier New, Courier, monospace;">HelloResource.java</span></div>
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSpb0egugCqtETbfTG5Oe_h0leDPBK3WG3NQ3KZ7GvpPFSlJ4hEJKNNCdKN9eWF-EU1DWFSn821b0vpAyme_Kdx-e1CTin8zTIX6q33t-lPfBhQPgogrz6IzPHmp4TyJHKC7HrPRn5iA6/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> package com.vbranden.resources;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.vbranden.models.HelloObject;
@Path("/rest")
public class HelloResource {
@Path("hello")
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getHello() {
// create a new HelloObject
HelloObject hello = new HelloObject("Flanders", "Hi-diddly-ho, neighborino");
return Response.ok().entity(hello).build();
}
}
</code></pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
10. Next we need to create a class that extends ResourceConfig. This class will point to the package where our resources are. Create a new class under Java Resources/src named HelloApplication.java and modify the package to com.vbranden. Keep the rest of the defaults</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaMIecTE3B4BTqBYXSzyaFlGryO1DL1Fdt5v-HLAOWB76C8iOXG_Fp2n4WlNYP85WSDZLF3ECpxCZzvRWUWXOcF2C9yiaEsXmaDLL92n9YS0BrpA3pMHhhTPVO_3WNhM9zKTD8mhLj78sU/s1600/Screen+Shot+2015-03-28+at+9.23.46+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaMIecTE3B4BTqBYXSzyaFlGryO1DL1Fdt5v-HLAOWB76C8iOXG_Fp2n4WlNYP85WSDZLF3ECpxCZzvRWUWXOcF2C9yiaEsXmaDLL92n9YS0BrpA3pMHhhTPVO_3WNhM9zKTD8mhLj78sU/s1600/Screen+Shot+2015-03-28+at+9.23.46+PM.png" width="263" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Replace the code for HelloApplication.java with the following</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Courier New, Courier, monospace;">HelloApplication.java</span></div>
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSpb0egugCqtETbfTG5Oe_h0leDPBK3WG3NQ3KZ7GvpPFSlJ4hEJKNNCdKN9eWF-EU1DWFSn821b0vpAyme_Kdx-e1CTin8zTIX6q33t-lPfBhQPgogrz6IzPHmp4TyJHKC7HrPRn5iA6/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> package com.vbranden;
import org.glassfish.jersey.server.ResourceConfig;
public class HelloApplication extends ResourceConfig {
public HelloApplication() {
packages("com.vbranden.resources");
}
}
</code></pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
11. Finally in order to use this project as a web service in GateIn/JBOSS we need to add the jboss-deployment-structure.xml file to the folder hellows/WebContent/META-INF. Right click the folder and select New > File and create jboss-deployment-structure.xml</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Replace the code for jboss-deployment-structure.xml with the following</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Courier New, Courier, monospace;">jboss-deployment-structure.xml</span></div>
<pre style="background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzSpb0egugCqtETbfTG5Oe_h0leDPBK3WG3NQ3KZ7GvpPFSlJ4hEJKNNCdKN9eWF-EU1DWFSn821b0vpAyme_Kdx-e1CTin8zTIX6q33t-lPfBhQPgogrz6IzPHmp4TyJHKC7HrPRn5iA6/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"> <?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="resteasy" />
</exclude-subsystems>
<exclusions>
<module name="javaee.api" />
<module name="javax.ws.rs.api"/>
<module name="org.jboss.resteasy.resteasy-jaxrs" />
</exclusions>
<local-last value="true" />
</deployment>
</jboss-deployment-structure>
</code></pre>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
12. Now export the project as a WAR file to the directory $GATEIN_HOME/standalone/deployments/hellows.war. GateIn will automatically deploy the web service and it will be ready to test</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
13. Using a tool like POSTMAN you can quickly check the web service by making a get request to http://127.0.0.1:8080/hellows/rest/hello</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvufwKG8pEz2nMpQFUm6BpQBqS4eFONFTI8Kql7_DkPFAn86GlNav0xakVI1LSb88IQKPFJdY-uIEbUOKYmgshzplIg5N1VgBBQfAPG3tWkkvNwaXndL5ox8FLaz8VAtLAiwuEZZTyzTF6/s1600/Screen+Shot+2015-03-28+at+9.38.05+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="119" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvufwKG8pEz2nMpQFUm6BpQBqS4eFONFTI8Kql7_DkPFAn86GlNav0xakVI1LSb88IQKPFJdY-uIEbUOKYmgshzplIg5N1VgBBQfAPG3tWkkvNwaXndL5ox8FLaz8VAtLAiwuEZZTyzTF6/s1600/Screen+Shot+2015-03-28+at+9.38.05+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Without any options the response will be XML formatted. If you would like a JSON response add an Accept header for application/json</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgOWMKDbe9S7Ara5T_xHNWaIQREopb9RARsOs0XMqDrq3VcF7r5mgZ8Du5X6ey8ooU5aP9JYwtk3CxQGU0Wy8wEzuvhTK9veBauj9FjaDrQTaSMIUUrK2D0NnHB8STWiiHSiCm4gOe-OX_/s1600/Screen+Shot+2015-03-28+at+9.40.02+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="124" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgOWMKDbe9S7Ara5T_xHNWaIQREopb9RARsOs0XMqDrq3VcF7r5mgZ8Du5X6ey8ooU5aP9JYwtk3CxQGU0Wy8wEzuvhTK9veBauj9FjaDrQTaSMIUUrK2D0NnHB8STWiiHSiCm4gOe-OX_/s1600/Screen+Shot+2015-03-28+at+9.40.02+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
And thats it! Hopefully this will help out those of you with problems getting a JAX-RS webservice to work in GateIn or JBOSS. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/14594102938206957677noreply@blogger.com0tag:blogger.com,1999:blog-1214952378616980620.post-33269676056233381242014-06-25T21:56:00.001-07:002014-06-25T21:56:03.965-07:00VMware SSL certificates made a bit easierIf you have ever replaced certificates on a VMware product you know it can get a little confusing at times. For this reason I have written this simple powershell tool to easily create CSRs and import the replies.<br />
<br />
The tool uses a set of canned configuration files for the various VMware products. These configuration files come directly from VMware KB articles. You can also write your own custom cfg files and place them in the templates directory for use in the tool. You must also add a line in the in the vmware-cert-tool.conf file for your custom template defaults.<br />
<br />
You can download the tool from here. I have provided a link with OpenSSL included, but google thinks it contains a virus (which it does not)<br />
<br />
You can get that here > <a href="https://drive.google.com/file/d/0B_iJv_Euf_jUZ3dMUEtmaW15c2c/edit?usp=sharing" target="_blank">VMware Certificate Tool w/ OpenSSL</a><br />
<br />
If warnings make you nervous, You can get the package w/o OpenSSL included here > <a href="https://drive.google.com/file/d/0B_iJv_Euf_jUSTd4NWY1Mmo4UEE/edit?usp=sharing" target="_blank">VMware Certificate Tool OpenSSL not Included</a><br />
<br />
You will however need to download and install OpenSSL from <a href="http://slproweb.com/products/Win32OpenSSL.html" target="_blank">http://slproweb.com/products/Win32OpenSSL.html</a> and install it in the vmware cert tool directory under openssl or modify the powershell script to point to your installation<br />
<br />
Now on to the screenshots...<br />
<br />
When you run the program you will be prompted to either generate a CSR or import a reply<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHZU-qYxDjUtskfRgPPNnX0JHIu39FJILqj4-dLF1MSUNY0-_jVYpOmm4o5jXjr7DXBC38TXwKU6oXVenOA2_J8JpxNsIRMBP1ESZCRzGO3JyJFt9Cd2XLQhzIvTo85tkaVScPELmLGpF/s1600/Capture1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHZU-qYxDjUtskfRgPPNnX0JHIu39FJILqj4-dLF1MSUNY0-_jVYpOmm4o5jXjr7DXBC38TXwKU6oXVenOA2_J8JpxNsIRMBP1ESZCRzGO3JyJFt9Cd2XLQhzIvTo85tkaVScPELmLGpF/s1600/Capture1.PNG" height="160" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
You will be prompted with a list of all the current configuration templates you have in the templates directory<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy_phcfiWQgB7U8abCc74CRkDQ0DLmKOktN5uWjI5OPjn-ZT1LwYQH0Om64a8Lb56FWX2ZnyFHGYWwAj3f62N3k3eNIa_DIWVpxlDrThqB-0zSKg1cfGs_PvSQB7tRVPCZWZ-9j2FN5RFC/s1600/Capture2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy_phcfiWQgB7U8abCc74CRkDQ0DLmKOktN5uWjI5OPjn-ZT1LwYQH0Om64a8Lb56FWX2ZnyFHGYWwAj3f62N3k3eNIa_DIWVpxlDrThqB-0zSKg1cfGs_PvSQB7tRVPCZWZ-9j2FN5RFC/s1600/Capture2.PNG" height="160" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixP6T_C4KDDq7LnbgEtMVV7kNC4hZLJ2nRg7DQW0-1hVfmI3k4boTiIOKX7LwiCvxLV1CbyANaWr4A2sJ-2qt_hBTEXddlLm9iHdtD_Qlk84gtPbDuiWmlJ1Nky8aS3DLisAMwp0LhIMrh/s1600/Capture3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixP6T_C4KDDq7LnbgEtMVV7kNC4hZLJ2nRg7DQW0-1hVfmI3k4boTiIOKX7LwiCvxLV1CbyANaWr4A2sJ-2qt_hBTEXddlLm9iHdtD_Qlk84gtPbDuiWmlJ1Nky8aS3DLisAMwp0LhIMrh/s1600/Capture3.PNG" height="273" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
You will be prompted for the certificate information. In this example we are creating a request for a certificate that will be used for a load balanced SSO 5.5 instance. You can add multiple SANs and IPs<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6gr3oBX0rSAOU1RCscF85ATeudUoDTWig6jGCJ0_0sOGMvaXOws-Ys5PWST5nc64xRVCIbB5vslN-Ttv9_f9C7xrS3dIdm5WVucIK6vPKPSdBzSf-bUM9wk0F7G4TQy3TdoxGq5arSGIW/s1600/Capture4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6gr3oBX0rSAOU1RCscF85ATeudUoDTWig6jGCJ0_0sOGMvaXOws-Ys5PWST5nc64xRVCIbB5vslN-Ttv9_f9C7xrS3dIdm5WVucIK6vPKPSdBzSf-bUM9wk0F7G4TQy3TdoxGq5arSGIW/s1600/Capture4.PNG" height="172" width="320" /></a></div>
<br />
A summary will be printed, if you have made any mistakes you can start over<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5PbTG_D4UhAY6N5VtuOLuyQ6_Q-QgstItmc6V-Yyfj5ro0bkOXb9BszbOEOvveOReD5p-IMqGNwBWtMxn-7etjTXWFdvEtdzanhDXyKVOQUynwbJDex-xQcK81naQB7lZRKP5JMR2Q6NR/s1600/Capture5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5PbTG_D4UhAY6N5VtuOLuyQ6_Q-QgstItmc6V-Yyfj5ro0bkOXb9BszbOEOvveOReD5p-IMqGNwBWtMxn-7etjTXWFdvEtdzanhDXyKVOQUynwbJDex-xQcK81naQB7lZRKP5JMR2Q6NR/s1600/Capture5.PNG" height="172" width="320" /></a></div>
<br />
Several files including the CSR and private key are created. The templateUsed.txt file keeps track of the type of certificate you are requesting<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRz8DyWndR8ZOO_y2YyUnPm7gHGsnO5daOPaAubvHGIYkcUa9216VHGnhr8vxQuug8EgXCO7noEhzXGTc4T9uKxr4Z3s6ujp0Ibh-qkyY6snuRrnHDLStoUKOT5YiCke_Fofb0yegIf5ni/s1600/Capture6.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRz8DyWndR8ZOO_y2YyUnPm7gHGsnO5daOPaAubvHGIYkcUa9216VHGnhr8vxQuug8EgXCO7noEhzXGTc4T9uKxr4Z3s6ujp0Ibh-qkyY6snuRrnHDLStoUKOT5YiCke_Fofb0yegIf5ni/s1600/Capture6.PNG" height="154" width="320" /></a></div>
<br />
At this point you are on your own to request the certificate from your CA. You can follow VMware's documentation for requesting a certificate here > <a href="http://kb.vmware.com/kb/2037432#getcert" target="_blank">http://kb.vmware.com/kb/2037432#getcert</a><br />
<br />
For the certificate tool you will only need the .p7b file as this contains the complete certificate chain. For ease place it in the request directory for your request<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEmUO_2IFxIdzs2_xfTRZj5DA0M_YjeY8ZXrifpetxVFZSOuIAuZ-uoYxHBQVoMIE9bUcDNMJiFrAZK_WvfUceaSCDRbY2MnEcOizOHIdEOHrxna4T4jC9lVS0jh7SNif95yX0P0roFd1t/s1600/Capture7.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEmUO_2IFxIdzs2_xfTRZj5DA0M_YjeY8ZXrifpetxVFZSOuIAuZ-uoYxHBQVoMIE9bUcDNMJiFrAZK_WvfUceaSCDRbY2MnEcOizOHIdEOHrxna4T4jC9lVS0jh7SNif95yX0P0roFd1t/s1600/Capture7.PNG" height="172" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Start the certificate tool up again and select option 2 to import the reply. You will enter the common name you set for the request and specify the absolute location for the .p7b file</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd5wXpFQ-mhxBF5kmD4WmlvItnkp_OsUXLiZ_gTiEAsd_9GGhJakuKd5f9FRnab2l1UcQXSHajR0g7BzYgIFJb1spw5S9_EOrbSGBA26hjXJwCM4JPFyq7nwX3SvHSTWBdXN9tf-gUmPnq/s1600/Capture8.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd5wXpFQ-mhxBF5kmD4WmlvItnkp_OsUXLiZ_gTiEAsd_9GGhJakuKd5f9FRnab2l1UcQXSHajR0g7BzYgIFJb1spw5S9_EOrbSGBA26hjXJwCM4JPFyq7nwX3SvHSTWBdXN9tf-gUmPnq/s1600/Capture8.PNG" height="171" width="320" /></a></div>
<br />
After the tool runs it creates all the certificate files you could ever want including the certificate itself, all of the certificates in the chain, a chain certificate without the host certificate, and even the ever elusive PEM file which contains the entire chain and private key<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaOT4muoML7Nw0RPau_GCYa4zjkVxjnWbYNN6SvKcUCcH3-NgFk_qpp8I6A_EabCBhiVZTS36uvASOq4tqFOJbQxCpj2HpYPLyNumdfp3PNNxYE9eIOJfqYyPFka31A1F_9NiZnsv3ePTe/s1600/Capture9.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaOT4muoML7Nw0RPau_GCYa4zjkVxjnWbYNN6SvKcUCcH3-NgFk_qpp8I6A_EabCBhiVZTS36uvASOq4tqFOJbQxCpj2HpYPLyNumdfp3PNNxYE9eIOJfqYyPFka31A1F_9NiZnsv3ePTe/s1600/Capture9.PNG" height="233" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I hope this helps some of you out.</div>
<br />Anonymoushttp://www.blogger.com/profile/14594102938206957677noreply@blogger.com0