Этот код работает для меня
Для удаления панели навигации getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Для удаления строки состояния getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
ฺ Но код выше, он отображается снова, когда вы коснитесь экрана, поэтому, если вы хотите статическое состояние, объедините этот код.
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE);
Вы можете использовать некоторые переменные области видимости CGI, чтобы проверить, откуда исходит запрос.
например: CGI.REMOTE_HOST, CGI.REMOTE_ADDR
Итак, вы, вероятно, построите новая функция со свойством access = "public", которое проверяет значения этих переменных по списку допустимых значений для вашего сервера. Если он вернет true, вы выполните запрос, а если он вернет false, вы выдадите / вернете какую-то ошибку.
Я бы предложил добавить обработчик OnRequestStart в ваш файл application.cfc и выполнить там проверку ... что это за проверка, зависит от на вашей текущей модели, но есть хорошие предложения: проверить cgi.remote_user (если аутентифицирован) или, возможно, сохранить что-то в области сеанса?
<cfif structKeyExists(session,"empID") and len(session.empid)>
<!--- user is authenticated, process normally --->
<cfelse>
<!--- abort request or sending meaningful error message --->
</cfif>
Я предпочитаю иметь только один аргумент для каждого метода - либо XML, либо Struct - и требует, чтобы определенное имя узла / объекта присутствовало в этом XML или Struct.
<cfif NOT StructKeyExists(arguments.myArgs, "requiredParam")>
<cfxml name="myXML">
<error>
<message>Required parameter not found.</message>
</error>
</cfxml>
<cfreturn myXML />
</cfif>
Как насчет использования нового атрибута ролей? Каждый, кто посещает ваш сайт, автоматически получает cflogin roles = "public".
Хотя я немного устарел, я откопал заметки Билла Перселла о защите приложений CF в целом. О защите CFC уже упоминалось.