К основному контенту

Weblogic Diagnostic Framework Run Bash Script (reboot managed server) - (bad practices)

Вообщем переодически сервер дохнет по: The WebLogic Server encountered a critical failure java.lang.OutOfMemoryError: Metaspace Reason: There is a panic condition in the server. The server is configured to exit on panic И хотя это гавно пишет типа  Reason: There is a panic condition in the server. The server is configured to exit on panic чёт ни хуя он ни куда не exit.... Вообщем т.к разбираться с тем чем он жрётся нет ни времени ни желания (оно обязательно появится)... как вариант можно приделать костыль... костыль будет заключаться в ребуте сервера при возникновении этой ошибки. Что значит для этого надо... Желания и понимание что так жить нельзя, и вообще... Делаем новый модуль называем скажем:  Reboot-OOMMetaSpace Идём в в новый модуль делаем Policy: Называем его OOM-Metaspace и говорит что это Server log: Жмём next в Configuration Policy пишем: log.logMessage.contains('java.lang.OutOfMemoryError: Metaspace'...

Oracle Access Manager 11gR2 OAMAuthnCookie parser (Webgate11g) OAMSDK

В догонку к этому посту
http://eugenpolyakov.blogspot.ru/2013/05/obssocookie-parser.html

Только парсить будем OAMAuthnCookie и webgate будет 11.
Первое что понадобится Oracle Access Manager Access SDK 11.1.2.3.0 его можно скачать тут:
http://www.oracle.com/technetwork/middleware/id-mgmt/downloads/oid-11gr2-2104316.html

Далее по шагам:
1. mkdir -p /opt/oracle/OAMSDK/OAMCookie
2. vi cookieParser.java
import java.util.*;
import oracle.security.am.asdk.*;

public class cookieParser {
                public static void main(String[] arg) {
                        String cookie = arg[0];
                        try {
                        AccessClient ac = AccessClient.createDefaultInstance();
                        UserSession sess = new UserSession(cookie,true);
                        System.out.println("==============================");
                        System.out.println("user: " + sess.getUserIdentity());
                        System.out.println("last use: " + new Date(sess.getLastUseTime()*1000L));
                        System.out.println("getLevel(): " + sess.getLevel());
                        System.out.println("getLocation(): " + sess.getLocation());
                        System.out.println("getSessionToken(): " + sess.getSessionToken());
                        System.out.println("getStartTime(): " + new Date(sess.getStartTime()*1000L));
                        System.out.print("Session status: ");
                        String status="";
                        switch (sess.getStatus()) {
                                case 0: status = "AWAITINGLOGIN"; break;
                                case 1: status = "LOGGEDIN";break;
                                case 2: status = "LOGGEDOUT";break;
                                case 3: status = "LOGINFAILED";break;
                                case 4: status = "EXPIRED";          break;
                        }

                        System.out.println(status);
                        ac.shutdown();
                        } catch (Exception ex) {
                        ex.printStackTrace();
                        }
        }
}

3. В этой же директории распаковываем OAMSDK
unzip V75953-01.zip

4. . $DOMAIN_HOME/bin/setDomainEnv.sh (тут не забыть точку в начале)
5. cd /opt/oracle/OAMSDK/OAMCookie
export CLASSPATH=`pwd`/oamasdk-api.jar:.:$CLASSPATH
6. cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/cwallet.sso ./config/
 cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/ObAccessClient.xml . 
(т.е копируем cwallet.sso и ObAccessClient.xml с webgate )
7. cd /opt/oracle/OAMSDK/OAMCookie
8. /opt/oracle/java/latest/bin/javac cookieParser.java
9. /opt/oracle/java/latest/bin/java cookieParser <OAMAuthnCookie>
user: cn=lalalal
last use: Tue May 26 13:34:11 MSK 2015
getLevel(): 2
getLocation(): 1.1.1.1
getSessionToken(): z807QV4clTwGpg/+M3d24o1wp4+J55G4Tl0wgU4Ei7N8Yz/XBJ/NpPHgfOgntYD7/7TW+NDhdMnj7788svkFJJ1MzpoG7ipQvhOyE4JVNKU5OuOzIxIbpyoKQbDDgCZcqkz5qktv1faPbuTgotvLlo0IbjiHJl2Gvp9/AvkcjS2EauGH6P6jea0WQdO5LkszZHwYxrPKpnQMYYd7UoMGPhKyodSym1TBokc/47vQQ1VjJRQvXF6n6gTHD8auA5U+SJUm/9dGPOeryLVylge9+7cKfUnJRqtEVKjNQhlLMn7OTKTYleDQ==
getStartTime(): Tue May 26 13:34:11 MSK 2015

Session status: LOGGEDIN

OAMAuthnCookie можно вытащить с помощью Firebug или чего угодно после захода на какой нить Protected ресурс.



P.S Возможные ошибки:


1. OAMAGENT-02081: No agent key entry found due to JPS config error or wallet file does not exist or contains no agent key.

Говорит о том что не найден "правильный файл" cwallet.sso
Решается пунктом 6 данного поста т.е:
6. cp $DOMAIN_HOME/output/test1_WG12/cwallet.sso ./config (т.е копируем cwallet.sso и ObAccessClient.xml с webgate в директорию /opt/oracle/OAMSDK/OAMCookie)

2. Exception in thread "main" java.lang.NoSuchFieldError: PROPERTY_RESOURCE_ACTIONS_SEED
at oracle.security.jps.internal.policystore.ldap.JpsLdapAttributeMapper.<init>(JpsLdapAttributeMapper.java:1368)
at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.<clinit>(JpsDBDataManager.java:526)

Такая херня может случаться, я уже не помню почему но с этом случае начните всё сначала=)

3. WLS ManagedService is not up running. Fall back to use system properties for configuration.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.impl.Configuration readAgentKey
SEVERE: JPS operation failure while reading key from wallet
oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..
Caused by: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.AccessClient initialize
SEVERE: Oracle Access SDK initialization failed. 
oracle.security.am.asdk.AccessException: OAMAGENT-02082: JPS operation failure while reading key from wallet
Caused by: oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..

Данная ошибка может появлятся если в cookieParser.java написано
System.setProperty("oracle.security.jps.config","/opt/oracle/middleware/user_projects/domains/oamtst_domain/config/fmwconfig/jps-config.xml");

или при вызове указали путь к этому jps-config.xml...

Для того что бы всё работало верно нужно использовать jps-config.xml из OAMSDK!

Комментарии

Популярные сообщения из этого блога

Oracle SOA email notification или какого х.. оно не работает.

От делать нех задокументируем.... Вообщем то всё рассписанно по ссылке: http://www.rubiconred.com/blog/email-notification-with-soa-suite-11g/ Ссылка походу сдохла!!! Придётся на всякий случай записать пока не забыл... Собственно основные настройки делаются на этой странице: Тут будет текст дабы не плодить картинок: MailAccessProtocol : POP3 RetryLimit : -1 MailDelFreq : 600 AutoDelete : not check Debug : not check CheckMailFreq : 30 ReceiveFolder: INBOX OutgoingMailServer :  mail4.ru OutgoingMailServerPort : 25 OutgoingMailServerSecurity : None OutgoingDefaultFromAddr :  pklmn@mail.ru OutgoingPassword: вроде ни чё не трогал... IncomingMailServer: mail3.ru IncomingMailServerPort: 110 IncomingMailServerSSL: not check IncomingMailIDs: pklmn@mail.ru IncomingUserIDs: pklmn IncomingUserPasswords: тут настраиваем пароль При настройке рекомендуется обращать внимания на всплывающие подсказки например: Sender Address должен выглядеть как E...

Weblogic Diagnostic Framework Run Bash Script (reboot managed server) - (bad practices)

Вообщем переодически сервер дохнет по: The WebLogic Server encountered a critical failure java.lang.OutOfMemoryError: Metaspace Reason: There is a panic condition in the server. The server is configured to exit on panic И хотя это гавно пишет типа  Reason: There is a panic condition in the server. The server is configured to exit on panic чёт ни хуя он ни куда не exit.... Вообщем т.к разбираться с тем чем он жрётся нет ни времени ни желания (оно обязательно появится)... как вариант можно приделать костыль... костыль будет заключаться в ребуте сервера при возникновении этой ошибки. Что значит для этого надо... Желания и понимание что так жить нельзя, и вообще... Делаем новый модуль называем скажем:  Reboot-OOMMetaSpace Идём в в новый модуль делаем Policy: Называем его OOM-Metaspace и говорит что это Server log: Жмём next в Configuration Policy пишем: log.logMessage.contains('java.lang.OutOfMemoryError: Metaspace'...

Weblogic Kerberos

Weblogic установлен на сервере budwf Домен контролер wcctst.wcc.local Клиентская винда XZ 1. Генерим keytab ktpass -princ HTTP/srv_budwf@WCC.LOCAL -mapuser srv_budwf -kvno 0 -crypto AES128-SHA1 -ptype KRB5_NT_PRINCIPAL -pass lalal_1 -out c:\temp\budwf.keytab Т.е в данном случае principal name в keytab полностью соответствует ожиданиям... C:\Users\Administrator>ktpass -princ HTTP/srv_budwf@WCC.LOCAL -mapuser srv_budwf -kv no 0 -crypto AES128-SHA1 -ptype KRB5_NT_PRINCIPAL -pass lalal_1 -out c:\temp\b udwf.keytab Targeting domain controller: wcctst.wcc.local Successfully mapped HTTP/budwf to srv_budwf. Password succesfully set! Key created. Output keytab to c:\temp\budwf.keytab: Keytab version: 0x502 keysize 55 HTTP/budwf@WCC.LOCAL ptype 1 (KRB5_NT_PRINCIPAL) vno 0 etype 0x11 (AE S128-SHA1) keylength 16 (0xbf005ae14d58153abe3eab57cf5a8260) C:\Users\Administrator>setspn -L srv_budwf Registered ServicePrincipalNames for CN=srv_budwf,CN=Users,DC=wcc,DC=local: ...