我自己创建了解决方案。
- 创建一个处理来自CAS的属性的Java Servlet,并返回一个JSON对象(doGet):
AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
final Map attributes = principal.getAttributes();
JSONObject jsonObj = new JSONObject(attributes);
PrintWriter out = response.getWriter();
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
out.print(jsonObj);
将.java编译为.class并将其放置在文件夹中:
${TOMCAT_BASE}/webapps/${APP_NAME}/WEB-INF/classes/${PACKAGE_NAME}
- 将CAS,JSON,Servlet库放入
${TOMCAT_BASE}/webapps/${APP_NAME}/WEB-INF/lib
库列表(版本可以不同)
json-20190722.jar
javax.servlet-api-4.0.1.jar
cas-client-core-3.6.1.jar
cas-client-support-saml-3.4.1.jar
commons-logging-1.1.1.jar
joda-time-2.10.4.jar
log4j-1.2.17.jar
slf4j-api-1.7.28.jar
slf4j-simple-1.7.25.jar
- 配置web.xml以使用此servlet
<servlet>
<servlet-name>SERVLET_NAME</servlet-name>
<servlet-class>${PACKAGE_NAME}.{CLASS_NAME}</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SERVLET_NAME</servlet-name>
<url-pattern>/{PATH}</url-pattern>
</servlet-mapping>
,现在可以在{host}:{port} / {APP_NAME} / {PATH}
上使用servlet。
- 我们可以使用JavaScript从APEX上获取它,例如将json发送到item.value的函数
function loadJSON(itemName) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(itemName).value = this.responseText
}
};
xhttp.open("GET","{PATH}",true);
xhttp.send();
}
loadJSON("P1_USER_INFO");
本文链接:https://www.f2er.com/3110551.html