본문 바로가기

카테고리 없음

pfSense 캡티브 포탈에서 로그인 실패 내역 추가하기

/usr/local/captiveportal/index.php 를 뜯어본 결과

아래의 로그인 단계를 확인했다.

로그인 실패 후 - 이전에 해야 하는게 맞는데 이전 로직이 너무 복잡해서 실패 후 데이터 허용량의 초과 여부를 확인해서 표시해 주는로그인 창이다.

 

 

 

$use_file = fopen("/var/log/radacct/datacounter/monthly/used-octets-$user", "r");
                        $max_file = fopen("/var/log/radacct/datacounter/monthly/max-octets-$user", "r");
                        if($use_file && $max_file){
                                $max_use = fgets($max_file);
                                $usage = $max_use-fgets($use_file);
                                if($usage<=0){
                                        $usage = number_format(abs($usage)/1048576, 2, '.',',');
                                        $max_usage = number_format(abs($max_use)/1048576, 2, '.',',');
                                        $replymsg = getText("Data usage exceeds $usage MBytes of total $max_usage MBytes allowed.  Request or expand data to use internet");
                                        fclose($use_file);
                                        fclose($max_file);
                                }
                        }
                         else {
                                 $replymsg = getText("Login ID/PW was not valid.. check ID/PW");
                        }
                }

                captiveportal_logportalauth($user, $clientmac, $clientip, $auth_result['login_status'], $replymsg);
                /* Radius MAC authentication. */
                if ($context === 'radmac' && $type !== 'redir' && !isset($cpcfg['radmac_fallback'])) {

 

.....

 

 


                captiveportal_logportalauth($user, $clientmac, $clientip, $auth_result['login_status'], $replymsg);
                /* Radius MAC authentication. */
                if ($context === 'radmac' && $type !== 'redir' && !isset($cpcfg['radmac_fallback'])) {
                        echo $replymsg;

                } else {
                        /*portal_reply_page($redirurl, $type, $replymsg); */ 로그인 후 리디렉션 되면 바로 로그인이 안되고 반드시 로그인 화면으로 돌려야만 로긴 가능한 것을 바로 로그인 화면으로 리디렉션 되고 메시지가 뜨도록 바꿈.
                        portal_reply_page($redirurl, $type, $replymsg, $clientmac, $clientip);