【原創】關於weblogic的classpath、weblogic.xml和JASS設定
阿新 • • 發佈:2019-02-12
關於weblogic的classpath、weblogic.xml和JASS設定
自己最近剛剛調到了公司的訪問安全小組,接入公司的賬戶管理系統,以前的專案都是使用的是TOMCAT,現在需要配置weblogic的相關專案,接入的時候遇見了許多坑,主要是classpath、JAAS、weblogic.xml。現在總結一下,有相關需要的朋友可以避免走彎路~
1,設定CLASSPATH
在初次接入weblogic的時候,有些時候接入了一些中介軟體後,需要載入一些相關資源來初始化容器和專案。這時候,就需要把相關的資源設定到CLASSPATH當中去了。
1,在startweblogic.cmd 當中,找到SETCLASSPATH的相關配置,按照規則新增。
2,如果是jar檔案,需要新增完整的路徑和jar名稱。
3,如果是資原始檔,只需要寫出相關的路徑名稱就是,不需要完整的檔名稱。
2,使用JASS
在登陸的時候,使用到了JASS,這個是基於JAVA的容器認證。方便簡單,很大程度上節約了登陸模組的複雜性。其配置如下,其中選擇了FORM模式,還有簡單的BASE模式。且FORM必須要滿足以下的命名規則:
<form method="POST" action="j_security_check">
姓名:<input type="text" name="j_username" /><br/>
密碼:<input type="password" name="j_password"/><br/>
<input type="submit" value="登入"/>
</form>
然後在web.xml檔案當中的配置如下:
<!--登入的相關配置 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list >
<login-config>
<auth-method>FORM</auth-method>
<realm-name>myrealm</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>protect</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>users</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>users</role-name>
</security-role>
<error-page>
<error-code>403</error-code>
<location>/403.jsp</location>
</error-page>
<security-constraint>
<web-resource-collection>
<web-resource-name>exclude</web-resource-name>
<url-pattern>/umlogin/*</url-pattern>
<url-pattern>/login.jsp</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
</security-constraint>
3,新增weblogic.xml
按照上面的成功部署後,啟動APP,但是進行登陸的時候,始終都無法獲取許可權,進行相關資源的訪問,一直報weiblogic 403的錯誤,為什麼呢?需要以下兩個說明:
1,上面web.xml中提及的auth-constraint、security-role、role-name、users都是指的容器相關的角色,而並不是系統的角色。
2,所以需要在web專案中新增一個名字為weblogic.xml的檔案,其配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<security-role-assignment>
<role-name>users</role-name>
<principal-name>users</principal-name>
</security-role-assignment>
<jsp-descriptor>
<jsp-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</jsp-param>
<jsp-param>
<param-name>printNulls</param-name>
<param-value>false</param-value>
</jsp-param>
<jsp-param>
<param-name>keepgenerated</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</jsp-param>
</jsp-descriptor>
</weblogic-web-app>
上面就是我遇到的坑,總結一下,避免再跳進去,不過,這種東西,自己搞一遍,很難再忘記了~