Я использую модуль Secure, если это не ясно из моего названия:
http://www.playframework.org/documentation/1.2.4/secure
(Контроллер безопасности находится в (стандартном) комплекте контроллеров)
У меня есть это в моем main.html шаблоне:
#{if Security.isConnected != true}
<a href="#" id="loginSlider">Login</a>
#{/if}
#{else}
<a href="/logout">Logout</a>
#{/else}
И это, похоже, не работает, так как «Безопасность» здесь не имеет значения.
Я обнаружил, что это довольно плохо документировано на playframework.org.
[EDIT]
Вещи, которые я пробовал:
Добавление @ перед Контроллером: # {if @ Security.isConnected! = True}
Префикс с именем пакета: # {if @ controllers.Security.isConnected! = True}
Я подтвердил, что действительно вошел в систему, перейдя на защищенную страницу.
[EDIT2]
Нашел обходной путь, который работает, но мне это не нравится.
По сути, метод контроллера безопасности isConnected делает это: return session.contains ("username").
Так что я могу сделать эту проверку на мой взгляд:
#{ifnot session.contains("username")}
Но это не оптимальное решение ...