středa 12. července 2017

Enable Elytron in WildFly 2

Hooray, we have already a simple way to enable Elytron accross all the default server profiles. The JBoss CLI script was added to the application server distribution! You can find it in the docs/examples/enable-elytron.cli file.

Download the WildFly nightly build as was shown in the last entry and then let's just execute the CLI script:

bin/jboss-cli.sh --file=docs/examples/enable-elytron.cli

That's it :)

úterý 24. ledna 2017

Enable Elytron in WildFly

Steps to enable Elytron in WildFly nightly builds.

There is an ongoing effort to bring a new security subsystem Elytron to WildFly and JBoss EAP. For some time a custom server profile named standalone-elytron.xml existed beside other profiles in standalone/configuration directory. It was possible to use it for playing with Elytron.

The custom Elytron profile was removed now.  The Elytron subsystem is newly introduced to all standard server profiles. The thing is, the Elytron is not used by default and users have to enable it in the subsystems themselves.

Let's look into how you can enable it.

Get WildFly nightly build

# Download WildFly nightly build
wget --user=guest --password=guest https://ci.wildfly.org/httpAuth/repository/downloadAll/WF_Nightly/.lastSuccessful/artifacts.zip
# unzip build artifacts zip. It contains WildFly distribution ZIP
unzip artifacts.zip
# get the WildFly distribution ZIP name as property
WILDFLY_DIST_ZIP=$(ls wildfly-*-SNAPSHOT.zip)
# unzip WildFly
unzip -q $WILDFLY_DIST_ZIP

Configure Elytron (default profile)

Use JBoss CLI to configure Elytron in subsystems.

wildfly-*-SNAPSHOT/bin/jboss-cli.sh << EOT
embed-server
/subsystem=undertow/application-security-domain=other:add(http-authentication-factory=application-http-authentication)
/subsystem=ejb3/application-security-domain=other:add(security-domain=ApplicationDomain)
/subsystem=batch-jberet:write-attribute(name=security-domain, value=ApplicationDomain)
/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name=sasl-authentication-factory, value=application-sasl-authentication)
/subsystem=remoting/http-connector=http-remoting-connector:undefine-attribute(name=security-realm)
/core-service=management/access=identity:add(security-domain=ManagementDomain)
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true, sasl-authentication-factory=management-sasl-authentication})
/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory,value=management-http-authentication)
/core-service=management/management-interface=http-interface:undefine-attribute(name=security-realm)
reload

/core-service=management/security-realm=ManagementRealm:remove
/core-service=management/security-realm=ApplicationRealm/authentication=local:remove
/core-service=management/security-realm=ApplicationRealm/authentication=properties:remove
/core-service=management/security-realm=ApplicationRealm/authorization=properties:remove

stop-embedded-server
EOT

Configure Elytron (full profile)

The full profile contains messaging, so we can enable Elytron in there too:

wildfly-*-SNAPSHOT/bin/jboss-cli.sh << EOT
embed-server --server-config=standalone-full.xml
/subsystem=undertow/application-security-domain=other:add(http-authentication-factory=application-http-authentication)
/subsystem=ejb3/application-security-domain=other:add(security-domain=ApplicationDomain)
/subsystem=batch-jberet:write-attribute(name=security-domain, value=ApplicationDomain)
/subsystem=messaging-activemq/server=default:undefine-attribute(name=security-domain)
/subsystem=messaging-activemq/server=default:write-attribute(name=elytron-domain, value=ApplicationDomain)
/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name=sasl-authentication-factory, value=application-sasl-authentication)
/subsystem=remoting/http-connector=http-remoting-connector:undefine-attribute(name=security-realm)
/core-service=management/access=identity:add(security-domain=ManagementDomain)
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true, sasl-authentication-factory=management-sasl-authentication})
/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory,value=management-http-authentication)
/core-service=management/management-interface=http-interface:undefine-attribute(name=security-realm)
reload

/core-service=management/security-realm=ManagementRealm:remove
/core-service=management/security-realm=ApplicationRealm/authentication=local:remove
/core-service=management/security-realm=ApplicationRealm/authentication=properties:remove
/core-service=management/security-realm=ApplicationRealm/authorization=properties:remove

stop-embedded-server
EOT

New issue (WFLY-7949) was reported to add a possibility to enable the Elytron in a single step.

Happy elytroning!

středa 19. října 2016

jOpenSpace.cz 2016 - dobíječka baterek


Po loňské pauze se mi opět podařilo dostat na nekonferenci jOpenSpace, která probíhala o víkendu 7.-9.10. kousek od Pelhřimova. V průběhu víkendu měl každý z účastníků vyhrazených 10 minut aby osvětlil (lightning talk formou) své téma. Já jsem prezentoval projekt Sunstone, kterému jsem se věnoval v uplynulém roce v souvislosti s testováním JBoss EAP v cloudech a v Dockeru. Program konference na svém blogu shrnul Jarda Holaň, takže já zmíním jen krátce co mě zaujalo a jaký jsem měl z celého víkendu dojem.

Bezpečnost

Mile mě překvapilo, že několik prezentací bylo zaměřeno na bezpečnost a její testování. Já jsem si při nich do svého TODO-listu připsal položky:
  • projít si WebGoat (deliberately insecure web application maintained by OWASP)
  • vyzkoušet Burp Suite na penetrační testování

Headhunteři

V pátek při večeři probíhala zajímavá diskuse s klukama ze společnosti Zeebra Recruiting, kteří nám dali nahlédnout pod pokličku svého zaměstnání. Mluvilo se o tom, jak se vyhnout spamování od headhunterů, jak správně zacílit na oblast, do které by se chtěl člověk posunout. A velkým tématem byl i převis poptávky nad nabídkou vývojářů a důsledky tohoto stavu.

JavaScript

JavaScript prý ještě není mrtvý... ale žádná ze souvisejících přednášek mě nepřesvědčila o tom, že by stálo za to se mu nějak víc věnovat. Do svého Wish-listu jsem si připsal poznámku, že bych se mohl mrknout na TypeScript.

Enterprise Java

... v našich krajinách moc nežije. Změní se přístup s příchodem projektu WildFly Swarm, který na konferenci prezentoval Lukáš Vlček?

Performance

Zaujaly mě Feršovy milisekundy a jak se mění přístup k RESTu. Záznam stejné prezentace, ale s lepší časovou dotací najdete na Slideslive (CZJUG).

Dobíječka baterek

jOpenSpace je (alespoň u mě) velmi výkoná dobíječka baterek. Nejen že mě namotivovala, abych se podíval na nové tooly, jazyky a postupy a případně si aktualizoval CV-čko, ale hlavně to je konference, kde se každý baví s každým a networking tu opravdu funguje. Řeší se tu reálné problémy, bojují tu technologie a člověk ať chce či nechce vystoupí ze své bubliny (u mě Java EE) a nadechne se více-či-méně voňavého vzduchu reálného světa.

Byl jsem letos v Polsku na Devoxxu a s čistým svědomím můžu říct, že z jOpenSpace jsem si odnesl víc (a jestli se nepletu, tak i piva jsem tu vypil více).

Díky na konec

Díky patří všem organizátorům (Zdeněk Henek, Novoj, Jety, Petr Jůza) za nasazení a skvěle zvládnutou akci, sponzorům za sponzoring (seznam najdete na http://jopenspace.cz/) a všem účastníkům za atmosféru, přednášky, názory, ....