Я создаю веб-сайт, на котором пользователи могут входить в систему, используя службу kerberos. Хотя это совершенно не имеет отношения к моей проблеме.
Поскольку я использую kerberos, я хочу использовать системный вызов для вызова kinit
, но я не знаю, как это лучше сделать.
] Пока у меня есть:
module Kerberos where
system :: String -> IO ExitCode
-- system is loaded through imports
type Username = String
type Password = String
kerberosValidate :: Username -> Password -> IO Bool
kerberosValidate username password = fmap (== ExitSuccess) $
system $ "echo " ++ password ++ " | kinit " ++ username
Что-то вроде того, что должно работать так себе. Однако у меня с этим возникают три проблемы:
имя пользователя
и пароль
. Это важно, поскольку существует веб-сайт, передающий любой полученный ввод в эту функцию. пароль
не следует передавать процессу kinit
с помощью эхо-пароля |
. Есть ли какая-то функция, принимающая стандарт в качестве аргумента? имя пользователя
, имя пользователя
должно быть передано в качестве аргумента. Я думаю, что rawSystem
решает эту проблему. Есть ли какие-нибудь системные функции, которые могут мне помочь?