-rw-r--r-- | include/opkele/types.h | 2 | ||||
-rw-r--r-- | lib/openid_message.cc | 20 |
2 files changed, 22 insertions, 0 deletions
diff --git a/include/opkele/types.h b/include/opkele/types.h index 842a722..5d39a5c 100644 --- a/include/opkele/types.h +++ b/include/opkele/types.h @@ -150,2 +150,4 @@ namespace opkele { + virtual void to_htmlhiddens(ostream& o) const; + void add_to_signed(const string& fields); diff --git a/lib/openid_message.cc b/lib/openid_message.cc index 905ea95..fdb4b04 100644 --- a/lib/openid_message.cc +++ b/lib/openid_message.cc @@ -161,2 +161,22 @@ namespace opkele { + struct __om_html_outputter : public unary_function<const string&,void> { + public: + const basic_openid_message& om; + ostream& os; + + __om_html_outputter(const basic_openid_message& om,ostream& os) + : om(om), os(os) { } + + result_type operator()(argument_type f) { + os << + "<input type=\"hidden\"" + " name=\"" << util::attr_escape(f) << "\"" + " value=\"" << util::attr_escape(om.get_field(f)) << "\" />"; + } + }; + + void basic_openid_message::to_htmlhiddens(ostream& o) const { + for_each(fields_begin(),fields_end(),__om_html_outputter(*this,o)); + } + void basic_openid_message::add_to_signed(const string& fields) { |