0
對於我的需求,我需要在Apache Tomcat服務器中有活動會話的所有活動用戶名單& Glassfish服務器。如何在Apache Tomcat服務器和GlassFish服務器中列出所有活動用戶名與活動會話
對於我的需求,我需要在Apache Tomcat服務器中有活動會話的所有活動用戶名單& Glassfish服務器。如何在Apache Tomcat服務器和GlassFish服務器中列出所有活動用戶名與活動會話
我不確定GlassFish,但是您可以編寫Tomcat來執行此操作,特別是在用戶會話中包含用戶名的對象時。在我的會話中,我有一個「用戶」對象,可以用於此。
這裏的食譜:
manager
Web應用程序並將其配置爲適當的認證for sessionid in `wget -qO - 'http://username:[email protected]:port/manager/jmxproxy?invoke=Catalina:type=Manager,context=/contextName,host=localhost&op=listSessionIds' \
| sed -e "s/ /\n/g" -e 's/.*returned://'`
do
response=`wget -qO - "http://username:[email protected]:port/manager/jmxproxy?invoke=Catalina:type=Manager,context=/contextName,host=localhost&op=getSessionAttribute&ps=$sessionid,user" 2>/dev/null`
#echo "$response"
if [ `expr "$response" : "^OK"` ] ; then
user=`expr "$response" : ".*\(User.*\)"`
if [ "$user" ] ; then
echo "$sessionid: $user"
else if [ "$VERBOSE" ] ; then
echo "$sessionid: [ no authenticated user ]"
fi fi
else
echo "[error]: $response"
fi
done
嗯......回 - 行情在那裏看起來不太好。讓我來看看如何讓代碼片斷可讀,然後我會更新這個答案。兩個wget
命令都應該有圍繞它們的備份,第一個應該在returned://'
字符串後面有close-backtick。
您是否需要在JVM/Tomcat或外部執行此操作?您是否在羣集環境中,需要來自所有服務器的用戶名,還是隻需要一個用戶名? –
有一個tomcat服務器和一個glassfish服務器。在tomcat服務器中,只有一個域和單個應用程序正在運行,而在glassfish服務器中共有6個域,每個域中有不同的應用程序正在運行。我必須從每個域收集活動用戶名。 –