struts 2 사용자 정의 차단기 1-아 날로 그 로그 인 권한 검증
22701 단어 struts2
2、 http://localhost:8083/struts2/quit.jsp 사용자 가 종료 되 었 음 을 표시 합 니 다.session 대상 을 제거 합 니 다.
3、 http://localhost:8083/struts2/login/addUIHelloWorld.do session 이 존재 하면 아래로 실행 합 니 다.그렇지 않 으 면"이 동작 을 수행 할 수 있 는 권한 이 없습니다"라 는 것 을 알 립 니 다.
4、 http://localhost:8083/struts2/login/executeHelloWorld.do session 이 존재 하면 아래로 실행 합 니 다.그렇지 않 으 면"이 동작 을 수행 할 수 있 는 권한 이 없습니다"라 는 것 을 알 립 니 다.
코드
user.jsp 페이지
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
<%
request.getSession().setAttribute(
"
user
"
,
"
ljq
"
);
%>
quit.jsp 페이지
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
UTF-8
"
%>
<%
request.getSession().removeAttribute(
"
user
"
);
%>
액 션 클래스
package
com.ljq.action;
public
class
HelloWorldAction {
private
String message;
public
String addUI() {
this
.message
=
"
addUI
"
;
return
"
success
"
;
}
public
String execute()
throws
Exception {
this
.message
=
"
execute
"
;
return
"
success
"
;
}
public
String getMessage() {
return
message;
}
public
void
setMessage(String message) {
this
.message
=
message;
}
}
권한 클래스
package
com.ljq.interceptor;
import
com.opensymphony.xwork2.ActionContext;
import
com.opensymphony.xwork2.ActionInvocation;
import
com.opensymphony.xwork2.interceptor.Interceptor;
/**
*
*
*
@author
jiqinlin
*
*/
@SuppressWarnings(
"
serial
"
)
public
class
PermissionInterceptor
implements
Interceptor {
public
void
destroy() {
}
public
void
init() {
}
public
String intercept(ActionInvocation invocation)
throws
Exception {
Object user
=
ActionContext.getContext().getSession().get(
"
user
"
);
//
user null, , action
if
(user
!=
null
){
return
invocation.invoke();
}
ActionContext.getContext().put(
"
message
"
,
"
"
);
return
"
success
"
;
}
}
struts.xml 프로필
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<!
DOCTYPE struts PUBLIC
"
-//Apache Software Foundation//DTD Struts Configuration 2.0//EN
"
"
http://struts.apache.org/dtds/struts-2.0.dtd
"
>
<
struts
>
<
constant name
=
"
struts.i18n.encoding
"
value
=
"
UTF-8
"
/>
<
constant name
=
"
struts.enable.DynamicMethodInvocation
"
value
=
"
false
"
/>
<
constant name
=
"
struts.action.extension
"
value
=
"
do
"
/>
<
package
name
=
"
login
"
namespace
=
"
/login
"
extends
=
"
struts-default
"
>
<
interceptors
>
<!--
-->
<
interceptor name
=
"
permission
"
class
=
"
com.ljq.interceptor.PermissionInterceptor
"
/>
<!--
-->
<
interceptor
-
stack name
=
"
permissionStack
"
>
<!--
,
-->
<
interceptor
-
ref name
=
"
permission
"
/>
<
interceptor
-
ref name
=
"
defaultStack
"
/>
</
interceptor
-
stack
>
</
interceptors
>
<!--
-->
<
default
-
interceptor
-
ref name
=
"
permissionStack
"
/>
<!--
-->
<
global
-
results
>
<
result name
=
"
success
"
>/
WEB
-
INF
/
page
/
message.jsp
</
result
>
</
global
-
results
>
<
action name
=
"
*HelloWorld
"
class
=
"
com.ljq.action.HelloWorldAction
"
method
=
"
{1}
"
>
<!--
<
interceptor
-
ref name
=
"
permissionStack
"
/>
-->
</
action
>
</
package
>
</
struts
>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
apache struts2 취약점 검증이번에는 보안 캠프의 과제였던 apache struts2의 취약성에 대해 실제로 손을 움직여 실행해 보고 싶습니다. 환경 VirtualBox에서 브리지 어댑터 사용 호스트:macOS 10.12 게스트:ubuntu 1...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.