OpenACS/AOLServer 설치에 대해 POST
을 모두 비활성화하고 싶습니다. 좋은 단일 장소 - 요청 후크 또는 래퍼/미들웨어 -이 작업을 수행 할 수 있습니까? (절편 통해 URI 패턴 또는 로그인 한 사용자에 몇 가지를 할 수있는 보너스 포인트합니다.)OpenACS/AOLServer 시스템에 모든 POST를 가로 채기에 적합한 고리가 있습니까?
2
A
답변
6
예,이 곧장 앞으로해야 할 일이다. 여기서 선택할 수 있습니다 : 모든 POST 대신 실행되도록 proc를 등록하거나 POST 전에 실행하고 특정 사용자를 필터링 할 필터를 등록 할 수 있습니다. 나는 필터가 더 나은 선택이라고 생각한다.
ns_register_proc 또는 ns_register_filter (preauth 포함)을 사용하여 proc 또는 필터를 등록하십시오. OpenACS 패키지의 tcl 폴더 아래 또는 주 AOLserver/web/servername/tcl 디렉토리 아래의 .tcl 파일에 다음 코드를 입력하십시오.
필터 예 :
ns_register_filter preauth POST/filter_posts
proc filter_posts {} {
set user_id [ad_verify_and_get_user_id]
set list_of_allowed_user_ids [21 567 8999]
if {[lsearch -exact $list_of_allowed_user_ids $user_id] == -1 } {
#this user isn't allowed - so redirect them
ns_returnredirect "/register/"
# tell AOLserver to abort this thread
return filter_return
} else {
# this user is allowed, tell AOLserver to continue
return filter_ok
}
}
PROC 예제 :
ns_register_proc POST/handle_posts
proc handle_posts {} {
ns_returnredirect "http://someotherwebsite.com"
}
내가 추가해야합니다 당신이해야 하나 또는 다른, 둘, – TrojanName