JBoss AS 7
Eliminando Caracteres Não Alpha Numéricos da Session ID no JBoss AS 7.1.1
Olá,
Existem algumas situações em que a session id gerada pelo JBoss Web não pode conter caracteres não alpha numéricos ou seja caracteres de A a Z, incluindo maiúsculas e minúsculas. Números também estão incluso nesse conjunto.
Existe uma propriedade chamada SESSION_ID_ALPHABET que permite restringir apenas alpha numérico no session id.
Vamos aos testes! Vou utilizar uma instância standalone e JAAS Properties based configuration.
O primeiro passo é adicionar um usuário com que utilize a realm de nome ApplicationRealm. Para isso basta executar o script em JBOSS_HOME/bin/standalone.bat ou JBOSS_HOME/bin/standalone.sh
Perceba que eu adicionei um usuário chamado magnani com a role ADMINISTRATOR para a realm ApplicationRealm.
Eu vou deixar aqui uma aplicação web já configurada bastando apenas realizar deploy para realizar os testes.
No meu primeiro teste a session id foi gerada no seguinte formato: JSESSIONID=uJn14dUJSU1BUF+QGZNVI3tQ.undefined. Observe que o caractere + foi utilizado na string da session.
Para limitar a geração da session id somente a alpha numéricos adicione a propriedade SESSION_ID_ALPHABET no standalone.xml.
Utilizando o JBoss CLI execute:
./system-property=org.apache.catalina.session.ManagerBase.SESSION_ID_ALPHABET:add(value="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
Realize o login novamente e perceba que agora a session id foi gerada no seguinte formato: JSESSIONID=qoEaQs9nbziCF1K4p2KsVMsm.undefined.
O objetivo foi atingindo 🙂
Essa entrada no JBoss CLI gerou uma system propertie como abaixo:
<system-properties> <property name="org.apache.catalina.session.ManagerBase.SESSION_ID_ALPHABET" value="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"/> </system-properties>
Espero que isso seja útil!
Abraços
Utilizando IPv6 e Desabilitando IPv4 no JBoss AS 7.1.1
E ai Galera blz?
A dica de hoje é bem simples.
Para que o JBoss passe a utilizar IPv6 em vez de IPv4 basta adicionar as propriedades abaixo no arquivo JBOSS_HOME/bin/standalone.conf ( Modo Standalone ) ou JBOSS_HOME/bin/domain.conf ( Modo Domain ):
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true"
Uma outra alternativa seria adicionar essa propriedade utilizando system-properties no domain.xml ou standalone.xml:
<system-properties> <property name="java.net.preferIPv4Stack" value="false"/> <property name="java.net.preferIPv6Addresses" value="true"/> </system-properties>
Basta reiniciar o JBoss para que as alterações comecem a funcionar.
Abraços
BUG na Inicialização do JBoss AS 7 em Modo Domain no Fedora 18
E ai galera blz?
Atualmente estou escrevendo um artigo para uma revista e como base estou utilizando o Fedora 18. Realizei a instalação com o comando:
$ sudo yum install jboss-as –y
Para iniciar o JBoss em modo Domain eu editei o arquivo /etc/jboss-as/jboss-as.conf e alterei o atributo JBOSS_CONFIG:
# The configuration you want to run JBOSS_CONFIG=domain.xml # The address to bind to JBOSS_BIND=0.0.0.0
Depois editei o arquivo serviço /usr/lib/systemd/system/jboss-as.service alterando o atributo ExecStart para utilizar o script domain.sh
ExecStart=/usr/share/jboss-as/bin/domain.sh -c $JBOSS_CONFIG -b $JBOSS_BIND
Executei o comando para recarregar as configurações de serviço:
$ sudo systemctl --system daemon-reload
Reiniciei o JBoss com o commando:
$ sudo systemctl restart jboss-as.service
O serviço iniciava o host controller e o process controller e morria!
jboss-as.service - The JBoss Application Server Loaded: loaded (/usr/lib/systemd/system/jboss-as.service; disabled) Active: inactive (dead) CGroup: name=systemd:/system/jboss-as.service
A Seguinte exception estava sendo lançada:
01:36:38,071 INFO [org.jboss.modules] (main) JBoss Modules version 1.1.1.GA 01:36:38,453 ERROR [stderr] (main) java.lang.IllegalStateException: JBAS015859: Could not create servers directory: /usr/share/jboss-as/domain/servers 01:36:38,456 ERROR [stderr] (main) at org.jboss.as.host.controller.HostControllerEnvironment.<init>(HostControllerEnvironment.java:397) 01:36:38,459 ERROR [stderr] (main) at org.jboss.as.host.controller.Main.determineEnvironment(Main.java:392)
Olhando o código fonte da classe org.jboss.as.host.controller.HostControllerEnvironment.java percebi que o problema estava na hora de pegar a propriedade public static final String DOMAIN_SERVERS_DIR = “jboss.domain.servers.dir”;
Então como medida paliativa editei o arquivo /usr/share/jboss-as/bin/domain.conf e adicionei o diretório de criação dos servers por exemplo para testes utilizei o tmp mesmo:
JAVA_OPTS="$JAVA_OPTS -Djboss.domain.default.config=domain.xml -Djboss.host.default.config=host.xml -Djboss.domain.servers.dir=/tmp"
Pronto problema resolvido 🙂
jboss-as.service - The JBoss Application Server Loaded: loaded (/usr/lib/systemd/system/jboss-as.service; disabled) Active: active (running) since Sat, 2013-05-18 01:40:11 EDT; 36s ago Main PID: 3279 (domain.sh) CGroup: name=systemd:/system/jboss-as.service â 3279 /bin/sh /usr/share/jboss-as/bin/domain.sh -c domain.xml -b 0.0.0.0 â 3317 java -D[Process Controller] -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=tru... â 3329 java -D[Host Controller] -Dorg.jboss.boot.log.file=/usr/share/jboss-as/domain/log/host-controller.log -Dlogging.configuration=file:/usr/sh... â 3377 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64/jre/bin/java -D[Server:server-one] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms64m -Xmx512m... â 3392 /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64/jre/bin/java -D[Server:server-two] -XX:PermSize=256m -XX:MaxPermSize=256m -Xms64m -Xmx512m...
Vou abrir uma issue no Fedora para eles verificarem isso!
Abraços
Threads Interessantes na Comunidade JBoss Brasil
E ai galera blz?
Como todos sabem nós estamos iniciando novamente o projeto JBUG Brasil.
Nos últimos dias rolaram umas threads bem legais para quem quer aprender um pouco sobre balanceamento de carga com JBoss 7, Mod Cluster e Apache.
- https://community.jboss.org/message/810078#810078
- https://community.jboss.org/message/810129#810129
- https://community.jboss.org/message/810134#810134
- https://community.jboss.org/message/810273#810273
- https://community.jboss.org/message/810274#810274
Grande Abraço
— Mauricio Magnani
Automatizando Deploy com Apache Ant no JBoss AS 7.1.3 ( JBoss EAP 6.0.1 )
Olá amigos,
Acredito que todos nós que trabalhamos com desenvolvimento precisamos em algum momento deployar a aplicação em algum servidor para que outras pessoas tenham acesso e possam realizar os devidos testes. Hoje a tarde passei por uma dessas situações: Eu precisava pegar um pacote .war e realizar o deploy nas minhas instâncias na Amazon EC2. Então estava com o seguinte cenário:
Eu estava fazendo algo bem manual mesmo. Copiava o arquivo .war para o servidor remoto na Amazon e depois me conectava ao CLI remotamente utilizando o comando:
jboss-cli.bat --connect --controller=201.66.21.20:9999 --user=jboss--password=123456
Isso se tornou uma tarefa bem repetitiva pois toda as vezes eu não me lembrava do IP do JBoss e tinha também que entrar em um Path especifico para executar o JBoss CLI.
Então para facilitar um pouco o processo de deploys, undeploys e outras tarefas, eu decidi utilizar o Apache Ant. A instação do Ant é bem simples. Basta descompactar, criar a variável ANT_HOME apontando para o arquivo descompactado do ant e coloca-la no path.
Para verificar se está funcionado basta abrir o cmd e executar: ant. Se obtiver uma resposta similar a abaixo é por que está funcionando.
Um script de build do Ant consiste em um documento no formato XML e deve se chamar build.xml.
Vou supor que o ambiente JBoss já está funcionando com o usuário de gerenciamento criado e liberado para acesso remoto. Caso não esteja siga o tutorial Acessando o JBoss AS 7.1.2 (EAP 6) Remotamente Utilizando CLI.
Crie um scritpt build.xml e deixe-o como abaixo:
<?xml version="1.0"?> <project name="jboss" basedir="."> <presetdef name="jboss-cli"> <java jar="D:\Desenvolvimento\jboss-eap\jboss-eap-6.0.1\jboss-eap-6.0\jboss-modules.jar" fork="true" > <arg line="-mp D:\Desenvolvimento\jboss-eap\jboss-eap-6.0.1\jboss-eap-6.0\modules org.jboss.as.cli --connect --controller=192.168.0.127:9999 --user=jboss --password=123456" /> </java> </presetdef> <target name="deploy-project"> <jboss-cli failonerror="true"> <arg line="'deploy test.war'" /> </jboss-cli> </target> <target name="undeploy-project"> <jboss-cli failonerror="true"> <arg line="'undeploy test'" /> </jboss-cli> </target> </project>
Perceba que está meio bagunçado mas funciona perfeitamente. Para organizar um pouco, voçê pode criar alguns properties como o JBOSS_HOME e o nome da aplicação .war. Veja que é possível também executar qualquer comando CLI que seja necessário.
Veja nos meus testes o resultado:
Deploy
Undeploy
Esse é um dos jeitos mais simples de melhorar as práticas de deploy mas o ideal é utilizar um servidor de integração contínua como o Jenkins do qual vou falar nos proxímos posts. Eu vou mostrar como integrar Jenkins, GitHub e o JBoss AS 7 com toda a estrutura de desenvolvimento.
Por hoje é isso ai!
Grande Abraço
Mauricio Magnani Jr
Utilizando Múltiplas Versões de Drivers JDBC no JBoss AS 7.1.3 (JBoss EAP 6.0.1)
E ai galera blz?
Em algumas situações precisamos utilizar várias versões de drivers JDBC do mesmo fabricante. Imagine uma empresa em que existem por exemplo 3 versões do Sistema de Gestao de Contratos que estão sendo executadas no JBoss AS 7 e cada uma delas utilize uma versão específica do Driver JDBC do MySQL:
- Sistema de Gestao de Contratos Versão 1.0 – mysql-connector-java-5.1.19
- Sistema de Gestao de Contratos Versão 2.0 – mysql-connector-java-5.1.23
- Sistema de Gestao de Contratos Versão 3.0 – mysql-connector-java-5.1.24
A melhor abordagem na minha opnião é criar módulos globais (global module) e adicionar slots com diferentes versões de drivers.
Baixe os pacotes mysql-connector-java-5.1.19.zip, mysql-connector-java-5.1.23.zip e mysql-connector-java-5.1.24.zip no site do fabricante.
Crie a estrutura de diretório para armazenar os arquivos dos módulos:
mkdir -p jboss-eap-6.0/modules/com/mysql/main mkdir -p jboss-eap-6.0/modules/com/mysql/5.1.19 mkdir -p jboss-eap-6.0/modules/com/mysql/5.1.23
Copie os arquivos .JAR para os diretórios dos módulos conforme abaixo:
cp /tmp/mysql-connector-java-5.1.24-bin.jar jboss-eap-6.0/modules/com/mysql/main/ cp /tmp/mysql-connector-java-5.1.19-bin.jar jboss-eap-6.0/modules/com/mysql/5.1.19/ cp /tmp/mysql-connector-java-5.1.23-bin.jar jboss-eap-6.0/modules/com/mysql/5.1.23/
Perceba que o arquivo mysql-connector-java-5.1.24-bin.jar foi copiado para o “main” pois ele será a nossa versão principal. O próximo passo é cria o arquivo module.xml para cada versão:
Versão 5.1.19
Crie o arquivo jboss-eap-6.0/modules/com/mysql/5.1.19/module.xml e adicione o seguinte conteúdo:
<?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.1" name="com.mysql" slot="5.1.19"> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> <resources> <resource-root path="mysql-connector-java-5.1.19-bin.jar"/> </resources> </module>
Versão 5.1.23
Crie o arquivo jboss-eap-6.0/modules/com/mysql/5.1.23/module.xml e adicione o seguinte conteúdo:
<?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.1" name="com.mysql" slot="5.1.23"> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> <resources> <resource-root path="mysql-connector-java-5.1.23-bin.jar"/> </resources> </module>
Versão 5.1.24 “main”
Crie o arquivo jboss-eap-6.0/modules/com/mysql/main/module.xml e adicione o seguinte conteúdo:
<?xml version="1.0" ?> <module xmlns="urn:jboss:module:1.1" name="com.mysql" slot="main"> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> <resources> <resource-root path="mysql-connector-java-5.1.24-bin.jar"/> </resources> </module>
No arquivo standalone.xml ou domain.xml (profile) adicone as seguintes propriedades no <subsystem xmlns=”urn:jboss:domain:ee:1.1″>:
<global-modules> <module name="com.mysql" slot="5.1.19"/> <module name="com.mysql" slot="5.1.23" /> </global-modules>
No datasource faça a referência do slot desejado como por exemplo:
<drivers> <driver name="mysql" module="com.mysql:5.1.23"/> </drivers>
<datasource jndi-name="java:/MySQLDS" pool-name="MySQLDS-Pool" enabled="true" use-java-context="true"> <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url> <driver>mysql</driver> ....
Faça o deploy da aplicação testdriver e verifique o driver que está sendo utilizado no momento pela aplicação:
12Eu não consegui alterar o módulo on-the-fly utilizando o CLI ( talvez tenha esqueçido algo =/ ):
/subsystem=datasources/jdbc-driver=mysql:write-attribute(name=driver-module-name,value=com.mysql:5.1.19) { "outcome" => "failed", "failure-description" => "JBAS014639: Attribute driver-module-name is not writable", "rolled-back" => true }
Então editei manualmente e testei:
<drivers> <driver name="mysql" module="com.mysql:5.1.19"/> </drivers>
Para utilizar o módulo principal deixe o driver configurado da seguinte maneira:
<drivers> <driver name="mysql" module="com.mysql"/> </drivers>
Por hoje é só!
Grande Abraço
Mauricio Magnani Jr
Instalando JBoss AS 7.1.1 Como Serviço no Windows Server 2008 x64
E ai galera blz?
Apesar de eu não gostar de utilizar Windows como servidor, existem muitas pessoas que usam ou precisam seja por obrigatoriedade de contrato ou cultura da empresa. Então no post de hoje vamos aprender a instalar o JBoss AS 7.1.1 como serviço no Windows.
O primeiro passso depois de baixar o JBoss AS 7.1.1 é realizar o download do JBoss Web Native Connectors especifico para a plataforma em questão que no nosso caso é Windows x64: binaries 2.0.10-windows x64.
Vou supor que JBoss está descompactado no seguinte caminho:
C:\jboss-as-7.1.1.Final
Descompacte o arquivo jboss-native-2.0.10-windows-x64-ssl.zip e copie os seguintes arquivos para o diretório C:\jboss-as-7.1.1.Final\bin:
O próximo passo é editar o arquivo C:\jboss-as-7.1.1.Final\bin\service.bat e alterar os valores das propriedades SVCNAME, SVCDISP e SVCDESC deixando como abaixo:
set SVCNAME=JBoss7server set SVCDISP=JBoss Server set SVCDESC=JBoss AS 7.1.1.Final - Windows x64
Comente a propriedade JAVA_OPTS=-Xrs utilizando “REM” na linha:
REM set JAVA_OPTS=-Xrs
Ainda no arquivo service.bat altere toda ocorrência de run.bat ( duas ocorrências) para standalone.bat e run.log (seis ocorrências)para standalone.log.
Siga o mesmo procedimento para call shutdown -S < .s.lock >> shutdown.log 2>&1 ( duas ocorrências ) altere para call jboss-cli.bat –connect –command=:shutdown >> shutdown.log 2>&1 e salve o arquivo service.bat.
Abra o cmd, navegue até o diretório C:\jboss-as-7.1.1.Final\bin\ e execute o comando abaixo para que o serviço seja registrado:
service.bat install
No utilitário executar do Windows digite services.msc para que lista do serviços seja aberta. Verifique se o serviço do JBoss foi registrado.
1
Lembre-se de alterar o Startup Type para Automatic para que toda vez que o Windows for iniciado o serviço do JBoss também será iniciado de forma automática.
Reinicie o Windows e observe o arquivo C:\jboss-as-7.1.1.Final\bin\standalone.log para verificar se o JBoss foi iniciado corretamente!
Starting JBoss Server [2013-04-03 22:23:31] Calling "C:\jboss-as-7.1.1.Final\bin\standalone.conf.bat" =============================================================================== JBoss Bootstrap Environment JBOSS_HOME: C:\jboss-as-7.1.1.Final JAVA: C:\Program Files (x86)\Java\jdk1.7.0_06\bin\java JAVA_OPTS: -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=standalone.xml =============================================================================== 22:24:01,409 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA 22:24:05,434 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA 22:24:05,871 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting 22:24:14,903 INFO [org.jboss.as.server] JBAS015888: Creating http management service using socket-binding (management-http) 22:24:14,950 INFO [org.xnio] XNIO Version 3.0.3.GA 22:24:15,215 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.3.GA 22:24:15,371 INFO [org.jboss.as.configadmin] JBAS016200: Activating ConfigAdmin Subsystem 22:24:15,402 INFO [org.jboss.remoting] JBoss Remoting version 3.2.3.GA 22:24:15,418 INFO [org.jboss.as.webservices] JBAS015537: Activating WebServices Extension 22:24:15,449 INFO [org.jboss.as.security] JBAS013101: Activating Security Subsystem 22:24:15,465 INFO [org.jboss.as.naming] JBAS011800: Activating Naming Subsystem 22:24:15,465 INFO [org.jboss.as.osgi] JBAS011940: Activating OSGi Subsystem 22:24:15,480 INFO [org.jboss.as.clustering.infinispan] JBAS010280: Activating Infinispan subsystem. 22:24:15,496 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers 22:24:18,959 INFO [org.jboss.as.security] (MSC service thread 1-1) JBAS013100: Current PicketBox version=4.0.7.Final 22:24:18,975 INFO [org.jboss.as.connector] (MSC service thread 1-2) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.9.Final) 22:24:19,333 INFO [org.jboss.as.naming] (MSC service thread 1-2) JBAS011802: Starting Naming Service 22:24:20,207 INFO [org.jboss.as.mail.extension] (MSC service thread 1-2) JBAS015400: Bound mail session [java:jboss/mail/Default] 22:24:20,503 INFO [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-1) JBoss Web Services - Stack CXF Server 4.0.2.GA 22:24:20,784 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-1) Starting Coyote HTTP/1.1 on http--127.0.0.1-8080 22:24:21,767 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-2) JBAS015012: Started FileSystemDeploymentService for directory C:\jboss-as-7.1.1.Final\standalone\deployments 22:24:22,095 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:4447 22:24:22,095 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on /127.0.0.1:9999 22:24:22,157 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS] 22:24:22,407 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990 22:24:22,407 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 28999ms - Started 133 of 208 services (74 services are passive or on-demand)
Por hoje é só 🙂
Qualquer dúvida ou sugestão estamos ai!
Aquele Abraço
Links:
Criptografando Senhas e Informações Sensíveis no JBoss AS 7.1.3 ( JBoss EAP 6.0.1 )
Olá amigos,
O JBoss AS 7 possui um utilitário JBOSS_HOME/bin/vault.sh que permite criptografar informações sensíveis como senhas e amazenar em encrypted keystores.
Por exemplo, atualmente temos o datasource do MySQL com a senha configurada em plaintext:
<datasource jndi-name="java:/MySQLDS" pool-name="MySQLDS-Pool" enabled="true" use-java-context="true"> <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url> <driver>mysql-connector-java-5.1.22-bin.jar</driver> <security> <user-name>root</user-name> <password>123456</password> </security> </datasource>
Para realização dos testes de lookup no Datasource java:/MySQLDS estou utilizando a aplicação dstest.war. Perceba que fiz o lookup e realizei um select com sucesso!
1
Objteivo é criptografar o atributo passsword utilizando o JBOSS_HOME/bin/vault.sh e realizar novamente os testes.
Como pré-requisito precisamos de uma Java Keystore e consequentemente que um JDK esteja configurado corretamente pois vamos utilizar o Keytool para gerar a keystore.
O primeiro passo é criar um diretório para armazenar a keystore.
Crie um diretório chamado vault:
mkdir /home/jboss/vault
Navegue até o diretório criado e execute os comandos para gerar a keystore:
keytool -genkey -alias vault -keystore vault.keystore -keyalg RSA -keysize 1024 -storepass 123456 -keypass 123456 -dname "CN=Mauricio Magnani,OU=JBossDivers,O=JBoss,L=Sao Paulo,ST=SP,C=BR"
Execute o script JBOSS_HOME/bin/vault.sh e siga os procedimentos informados:
[jboss@localhost /]$ ./usr/local/jboss/7.1.3/jboss-eap-6.0/bin/vault.sh ========================================================================= JBoss Vault JBOSS_HOME: /usr/local/jboss/7.1.3/jboss-eap-6.0 JAVA: java VAULT Classpath: /usr/local/jboss/7.1.3/jboss-eap-6.0/modules/org/picketbox/main/*:/usr/local/jboss/7.1.3/jboss-eap-6.0/modules/org/jboss/logging/main/*:/usr/local/jboss/7.1.3/jboss-eap-6.0/modules/org/jboss/common-core/main/*:/usr/local/jboss/7.1.3/jboss-eap-6.0/modules/org/jboss/as/security/main/* ========================================================================= ********************************** **** JBoss Vault ******** ********************************** Please enter a Digit:: 0: Start Interactive Session 1: Remove Interactive Session 2: Exit 0 Starting an interactive session Enter directory to store encrypted files (end with either / or \ based on Unix or Windows:/home/jboss/vault/ Enter Keystore URL:/home/jboss/vault/vault.keystore Enter Keystore password: Enter Keystore password again: Values match Enter 8 character salt:12345678 Enter iteration count as a number (Eg: 44):40 Please make note of the following: ******************************************** Masked Password:MASK-EjBzy4a2hjd salt:12345678 Iteration Count:40 ******************************************** Enter Keystore Alias:vault Obtained Vault Initializing Vault Apr 2, 2013 11:29:38 PM org.picketbox.plugins.vault.PicketBoxSecurityVault init INFO: PBOX000361: Default Security Vault Implementation Initialized and Ready Vault is initialized and ready for use Handshake with Vault complete Please enter a Digit:: 0: Store a password 1: Check whether password exists 2: Exit 0 Task: Store a password Please enter attribute value: jboss Please enter attribute value again: jboss Values match Enter Vault Block:MySQLDS Enter Attribute Name:password Attribute Value for (MySQLDS, password) saved Please make note of the following: ******************************************** Vault Block:MySQLDS Attribute Name:password Shared Key:YjVmN2RjMTgtOTIxNi00MDA4LWI5NmEtMThjYTRhOTc4NzY2TElORV9CUkVBS3ZhdWx0 Configuration should be done as follows: VAULT::MySQLDS::password::YjVmN2RjMTgtOTIxNi00MDA4LWI5NmEtMThjYTRhOTc4NzY2TElORV9CUkVBS3ZhdWx0 ******************************************** Please enter a Digit:: 0: Store a password 1: Check whether password exists 2: Exit
Abaixo de <extensions> adicione os atributos da keytore para o vault:
<vault> <vault-option name="KEYSTORE_URL" value="/home/jboss/vault/vault.keystore"/> <vault-option name="KEYSTORE_PASSWORD" value="MASK-EjBzy4a2hjd"/> <vault-option name="KEYSTORE_ALIAS" value="vault"/> <vault-option name="SALT" value="12345678"/> <vault-option name="ITERATION_COUNT" value="40"/> <vault-option name="ENC_FILE_DIR" value="${user.home}/vault/"/> </vault>
Perceba que os valores utilizados na configuração do vault são os mesmos gerados pelo JBOSS_HOME/bin/vault.sh.
Agore adicione a senha criptografada no Datasource, deixando-o como abaixo:
<datasource jndi-name="java:/MySQLDS" pool-name="MySQLDS-Pool" enabled="true" use-java-context="true"> <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url> <driver>mysql-connector-java-5.1.22-bin.jar</driver> <security> <user-name>root</user-name> <password>${VAULT::MySQLDS::password::YjVmN2RjMTgtOTIxNi00MDA4LWI5NmEtMThjYTRhOTc4NzY2TElORV9CUkVBS3ZhdWx0}</password> </security> </datasource>
Inicie o JBoss e faça os testes novamente com a aplicação dstest.war.
1
Perceba que conseguimos realizar o lookup e o select com sucesso utilizando o password criptografado com o utilitário JBOSS_HOME/bin/vault.sh.
O objetivo do post foi mais prático mesmo mas se desejar informações detalhadas aconselho a documentação oficial do produto:
Espero que tenha ajudado 🙂
Aquele Abraço
Configurando um Proxy Reverso com IIS7 e JBoss AS 7.1.2 ( JBoss EAP 6 )
Olá amigos,
Em cenários reais é uma boa prática fornecer o acesso à aplicação utilizando um servidor web como proxy em vez de diretamente no servidor de aplicação. Portanto, hoje vamos aprender a configurar o JBoss AS 7 com o servidor web IIS7 da microsoft.
O primeiro passo é realizar o downlaod do pacote tomcat-connectors-1.2.37-windows-x86_64-iis.zip. Esse pacote contém o arquivo isapi_redirect.dll que é uma versão do mod_jk compilado com um filtro ISAPI para o IIS.
Verifique se o IIS 7 está configurando e ativo. Abra o navegado e digite: http://localhost , caso visualize a imagem abaixo o IIS7 está funcionando.
Agora descompacte o arquivo em um diretório de sua preferência. Nesse post vou utilizar o seguinte diretório: C:\tomcat-connectors-iis . Criei três sub-diretórios bin, conf e logs.
Copie a DLL isapi_redirect.dll para o diretório C:\tomcat-connectors-iis\bin.
No diretório C:\tomcat-connectors-iis\conf crie três arquivos: uriworkermap.properties, workers.properties e isapi_redirect.reg.
No arquivo isapi_redirect.reg, insira o seguinte conteúdo:
REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation] [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector] [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0] "extension_uri"="/jakarta/isapi_redirect.dll" "log_file"="C:\\tomcat-connectors-iis\\log\\jakarta.log" "log_level"="debug" "worker_file"="C:\\tomcat-connectors-iis\\conf\\workers.properties" "worker_mount_file"="C:\\tomcat-connectors-iis\\conf\\uriworkermap.properties"
Configure o arquivo workers.properties como abaixo:
worker.list=local worker.local.port=8009 worker.local.host=localhost worker.local.type=ajp13 worker.local.lbfactor=1
No arquivo uriworkermap.properties devem ser mapeadas as URLs da aplicação. Como exemplo vamos mapear a welcome page do JBoss AS 7.
/*=local
Agora clique duas vezes sobre o arquivo C:\tomcat-connectors-iis\conf\isapi_redirect.reg para que as entradas dos registros sejam criadas.
Na funcionalidade executar digite inetmgr e aperte enter. O console de gerenciamento do IIS7 será aberto:
Ainda no console de gerenciamento do IIS7 clique em ISAPI and CGI Restrictions.
Clique em add para adicionar um novo filtro e configure o caminho ate a C:\tomcat-connectors-iis\bin\isapi_redirect.dll .
Navegue até default website e ainda no console de gerenciamento selecione ISAPI Filters.
Clique em add para adicionar um novo filtro e configure o caminho ate a C:\tomcat-connectors-iis\bin\isapi_redirect.dll .
Clique com o botao direito em default website e em Add virtual directory.
Coloque o nome de Jakarta e configure o caminho ate o diretorio C:\tomcat-connectors-iis\bin.
Clique em Jakarta e depois em Handler Mappings.
Habilite ISAPI-dll se estiver desabilitado.
Inicie o JBoss executando o Script JBOSS_HOME\bin\standalone.bat e acesse a url http://localhost/. Se o acesso for redirecionado para a página inicial do JBoss a configuração foi realizada com sucesso!
Espero que isso seja útil 🙂
Abraços