사용자 인증을위한 수단으로 OID 백엔드가있는 Oracle SSO를 사용하는 J2EE 웹 응용 프로그램을 구축하고 있습니다.Oracle SSO에서 로그 아웃 할 수 없음
사용자가 응용 프로그램을 사용하려면 먼저 SSO의 로그인 페이지에서 유효한 로그인/암호를 제공해야합니다.
사용자가 응용 프로그램을 사용하여 끝나면 로그 아웃 버튼을 클릭 할 수 있습니다. 무대 뒤에서,이 버튼과 관련된 작업은 사용자의 세션을 무효화하고 다음 Java 코드를 사용하여 쿠키를 지 웁니다 또한
private void clearCookies(HttpServletResponse res, HttpServletRequest req) {
res.setContentType("text/html");
for (Cookie cookie : req.getCookies()) {
cookie.setMaxAge(0);
cookie.setPath("/");
cookie.setDomain(req.getHeader("host"));
res.addCookie(cookie);
}
}
, I가 예상되는 로그 아웃 버튼과 관련된 온 클릭 자바 스크립트 이벤트를이를
그러나function delCookie(name, path, domain) {
var today = new Date();
// minus 2 days
var deleteDate = new Date(today.getTime() - 48 * 60 * 60 * 1000);
var cookie = name + "="
+ ((path == null) ? "" : "; path=" + path)
+ ((domain == null) ? "" : "; domain=" + domain)
+ "; expires=" + deleteDate;
document.cookie = cookie;
}
function delOblixCookie() {
// set focus to ok button
var isNetscape = (document.layers);
if (isNetscape == false || navigator.appVersion.charAt(0) >= 5) {
for (var i=0; i<document.links.length; i++) {
if (document.links.href == "javascript:top.close()") {
document.links.focus();
break;
}
}
}
delCookie('ObTEMC', '/');
delCookie('ObSSOCookie', '/');
// in case cookieDomain is configured delete same cookie to all subdomains
var subdomain;
var domain = new String(document.domain);
var index = domain.indexOf(".");
while (index > 0) {
subdomain = domain.substring(index, domain.length);
if (subdomain.indexOf(".", 1) > 0) {
delCookie('ObTEMC', '/', subdomain);
delCookie('ObSSOCookie', '/', subdomain);
}
domain = subdomain;
index = domain.indexOf(".", 1);
}
}
, 내 사용자가 SSO에서 로그 아웃되지 않아요가 로그 아웃 버튼을 누르 후 : 새로운 세션이 있지만 (일부 오라클 포럼에서 발견되는대로) delOblixCookie() 함수를 호출하여 SSO 쿠키를 삭제 그들이 인덱스 페이지에 액세스하려고 시도 할 때 만들어지면 SSO 로그인 페이지가 나타나지 않고 곧바로 갈 수 있습니다 인증하지 않고도 메인 페이지로 이동할 수 있습니다. 브라우저에서 쿠키를 수동으로 삭제 한 경우에만 로그인 페이지가 다시 표시됩니다. 사용자가 응용 프로그램에서 로그 아웃 할 때마다 사용자가 로그인/암호를 제공해야하므로 사용자가 로그인해야합니다. 쿠키를 삭제하는 코드
이 문제에 대한 도움을 주시면 감사하겠습니다. 미리 감사드립니다.