WSITPVD0035: Error in Verifying Security in Inbound Message.
com.sun.xml.wss.impl.XWSSecurityRuntimeException: WSS1601: Security Requirements not met - Transport binding configured in policy but incoming message was not SSL enabled
at com.sun.xml.wss.impl.policy.verifier.MessagePolicyVerifier.verifyPolicy(MessagePolicyVerifier.java:125)
Chyba je již od grizzlyho verze 1.9.55 vyřešena. Ovšem tato verze zatím není z update centra glassfishe dostupná.
Osvědčil se mi však následující postup s použitím toho času nejnovější verze Glassfish 3.1.2.2:
- Stáhnout si grizzly-utils-1.9.57.jar
- Stáhnout si grizzly-lzma-1.9.57.jar
- Stažené soubory umístit do adresáře glassfish/modules
- Přihlásit se telnetem na localhost 6666. Pokud tuta volba není v GF ještě povolena, lze postupovat podle kapitoly 10.4.1 v tomto dokumentu
- Zadat příkaz lb grizzly. Ve výpisu budou řádky podobné těmto:
224|Resolved | 1|grizzly-lzma (1.9.50)
265|Resolved | 1|grizzly-utils (1.9.50) - postupně zadat příkaz uninstall s parametrem id (první sloupec předchozího výpisu). V tomto případě
uninstall 224
uninstall 265 - Instalace novějších verzí:
install file:../../../modules/grizzly-lzma-1.9.57.jar
install file:../../../modules/grizzly-utils-1.9.57.jar - Nyní je možné odstranit původní soubory bundlů
rm glassfish/modules/grizzly-lzma.jar
rm glassfish/modules/grizzly-utils.jar
javax.security.auth.Subject subject = (javax.security.auth.Subject)wsContext.getMessageContext().get("CLIENT_SUBJECT");
Set privateCredentials = subject.getPrivateCredentials();
String userName;
for(Object credential : privateCredentials){
if(credential instanceof com.sun.enterprise.security.auth.login.common.PasswordCredential) userName = ((com.sun.enterprise.security.auth.login.common.PasswordCredential)credential).getUser();
}
Drobný tip k update centru nakonec: Možná se snažíte spustit update center a ten píše hlášku:
You are running on a 64 bit Linux distribution and the 32 bit Linux
compatibility libraries do not appear to be installed. In order to use
the Update Center tools you must install the 32 bit compatibility libraries.
On Ubuntu (and possibly other Debian based systems) please install the
ia32-libs package. On RedHat 4 (and other RPM based systems), you may
need to add multiple 'compat' runtime library packages. Please see the
Update Center Release Notes for more information
Pokud jste již ia32-libs nainstalovali a nepřišla žádná změna, pak vězte, že je třeba ještě nainstalovat libjpeg62:i386. Např. příkazem sudo apt-get install libjpeg62:i386
Zdravím,
OdpovědětVymazatdíky za návod, pomohl mi dostat se ze svízelné situace. Pouze mě překvapilo, že po smazání bundlů (krok 8) nechce glassfish nastartovat (Unresolved constraint in bundle... [caused by: Unable to resolve 175.0: missing requirement [175.0] osgi.wiring.package; (&(osgi.wiring.package=com.sun.grizzly.lzma)(version>=1.9.55))]). Jediné, co mi pomohlo bylo nakopírovat soubory zpět do /modules/ a nechat je tam.
Mrůzek Petr
Budnly je třeba mazat při spuštěném GF. Patrně jste je mazal, když byl vypnutý.
Vymazat