[web2py] PYODBC and IIS App Pool Memory Leak?

2014-12-22 Thread Pbop
We have deployed a web2py app to a client site with the client now doing 
some testing. On an initial load into the app by the first browser and on 
stress load of concurrent users, this error is being thrown. 

class 'gluon.contrib.pypyodbc.Error' (u'HY090', u'[HY090] 
[Microsoft][ODBC Driver Manager] Invalid 

A refresh of the browser can get past it in most cases until at some point 
even a refresh will not work. 

Installation is using the ISAPI Option. Recycling the application pool 
clears the error and then it happens if you wait a while. Under load the 
app is very slow. 

I am thinking the error is a trojan caused when the App Pool runs out of 
memory or there is some problem in running under ISAPI. The app itself is 
using the DAL in a conventional way. HY090 is a low level error which was a 
problem reported at one point in pyodbc. It seems to be replicated mostly 
on an initial load. 

Any tips? 

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
web2py-users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Don't use 64 bit ODBC with Web2Py and SQL Server

2015-01-15 Thread Pbop
We of course changed source to 32 bit when we went to 32 bit ODBC drivers. 
Did not try pypyodbc and did not know about pytds, which is cool to know! 
Thanks. For now we have a solution so my message is to just try and save 
folks a lot of time and grief. 


-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
web2py-users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Don't use 64 bit ODBC with Web2Py and SQL Server

2015-01-14 Thread Pbop
Spent days trying to track down an error with a Web2Py app and SQL Server 
2008 R2 running 64 bit ODBC drivers. 

Switched to 32 bit drivers and problem solved. 

The problem is not in Web2Py but in the actual PyOdbc driver. 

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
web2py-users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: In search of CAS 2 provider and consumer example

2015-01-10 Thread Pbop
For what it is worth we have integrated a web2py app to two different external 
cas providers both in http and https with no problem including ssls with ssl3.0 
disabled in favor of tls. 

Anyone working on a shib sso? 

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
web2py-users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Design flaw in auth.impersonate ?

2015-04-07 Thread Pbop
Presuming the session is cookie based, why not impersonate in incognito 
mode or in another browser? 

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
web2py-users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: web3py

2016-01-14 Thread Pbop
Sounds like you have a good approach with option 2. That is my vote! You 
can't get around that once a decision is made the community will react with 
some degrees of enthusiasm and pushback. 

I am curious if the increase in performance is based on a more efficient 
algorithm, Python3 is doing things faster or both?

Keep up the good work. 



On Thursday, January 14, 2016 at 12:35:36 AM UTC-5, Massimo Di Pierro wrote:
>
> It is another experiment.
>
> It is a rewrite of some of the web2py modules and supports 90% of the 
> current web2py syntax at 2.5x the speed. It works. It it cleaner and should 
> be easier to port to python 3 than current web2py. 
>
> We are debating on web2py developers what to do:
> 1) backport some of the new modules to web2py (specifically the new Form 
> class instead of SQLFORM)
> 2) try to reach a 99.9% compatibility and release it as new major version 
> with guidelines for porting legacy apps
> 3) make some drastic changes in backward compatibility and release as a 
> different framework (but change what? we like web2py as it is)
>
> For now I am working on 2 to see how far I can push the backward 
> compatibility. But there are some functionalities I want remove or move in 
> an optional module (from legacy_web2py import *).
>
> Feel free to share your opinion on web2py developers.
>
> Massimo
>
>
> On Wed, Jan 13, 2016 at 11:04 PM, kelson _  > wrote:
>
>> I was looking at your recent web3py commits and hoped you could provide 
>> the web3py vision/intent (or point me towards it if I missed the 
>> discussion).
>>
>> Thanks,
>> kelson
>>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] SOAP XML Element Question

2016-04-24 Thread Pbop
First, I highly recommend http://www.soapclient.com/soaptest.html as a 
resource to reverse engineer soap parameters and test soap calls. If it 
works from this site and not in your Web2Py code, your code is broken, not 
the SOAP client. The soap client parameters are poorly documented and the 
documentation in the Webplus manual looks at the implementation through the 
lens from what works in Web2Py, which is probably a best practice / 
standard practice, but is not followed in the free SOAP services out there. 
The soaptest site will return a ServerAddress once the WSDL/Description 
file is specified. This is the location property when defining the soap 
client. 

I know if I had a working sample, it would have saved me time, so for the 
benefit of the community, here is a  working sample; however, I would like 
to get feedback in how I am parsing out the XML response as while it works 
this seems a little convoluted with tools I have used in the past. I got 
this approach from another thread: 

def test_soap_sub2():
  from gluon.contrib.pysimplesoap.client import SoapClient, SoapFault
  from xml.dom import minidom
  # create a SOAP client
  client = 
SoapClient(location="http://ladonize.org/python-demos/Calculator/soap;, 
cacert=None, trace=True, namespace='addResponse', ns='addResponse')
  # call SOAP method
  response = client.add(a='5',b='54')
  try:
result = response['result']
x = client.xml_response
parsed_data = minidom.parseString(x)
newresult = parsed_data.getElementsByTagName('result')
result = newresult[0].firstChild.toxml()
  except SoapFault:
result = 'l'
  return dict(xml_request=client.xml_request,
xml_response=client.xml_response,
result=result)

Note that I am importing minidom
  from xml.dom import minidom

And then am jumping through this hoop to get the result...
parsed_data = minidom.parseString(x)
newresult = parsed_data.getElementsByTagName('result')
result = newresult[0].firstChild.toxml()

In the example in the manual, the result assignment is:
  result = response('AddResult')

The SOAP call has this response:
http://schemas.xmlsoap.org/soap/envelope/; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;>http://localhost:8000/webservices/sample/call/soap;>5

So my first question is why does this work? The AddResult tags are not 
wrapped in a namespace, but I am missing something fundamental here. 

In my working example above. the soap calls has this response:
http://schemas.xmlsoap.org/soap/encoding/; 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/; 
xmlns:ns="urn:Calculator" xmlns:xsd="http://www.w3.org/2001/XMLSchema; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;>http://schemas.xmlsoap.org/soap/encoding/;>59

Where the result tag is wrapped around 
59

So the second question is whether there is a better way to access the 
result tag without having to parse the dom? Or said a different way, why 
does the approach in the manual eg  result = response('result') fail? 




-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Struggling with simple SOAP call...

2016-04-19 Thread Pbop
I am trying to learn how to use the pysimplesoap client to consume a 
service outside of Web2Py. 

Example in book works great, and I have not some useful threads in the 
community about authentication which is phase 2, but I am just trying to 
start simple. Unfortunately, my proof of concept to use the soap client to 
readily available services on the WWW is bombing. I am sure it is something 
simple... Any help is appreciated.  

def test_4():
  from gluon.contrib.pysimplesoap.client import SoapClient, SoapFault
  client = SoapClient 
(wsdl="http://www.webservicex.net/geoipservice.asmx?wsdl;, 
location="http://www.webservicex.net/;, cacert=None, trace=False)
  # call SOAP method
  response = client.GetGeoIP(IPAddress='24.194.5.187')
  try:
result = response['GetGeoIPResult']
  except SoapFault:
result = None
  return dict(xml_request=client.xml_request,
xml_response=client.xml_response,
result=result)

Here is my Traceback

raceback (most recent call last):
  File "C:\web2py_src\web2py\gluon\restricted.py", line 227, in restricted
exec ccode in environment
  File "C:/web2py_src/web2py/applications/webservices/controllers/sample.py" 
, 
line 102, in 
  File "C:\web2py_src\web2py\gluon\globals.py", line 417, in 
self._caller = lambda f: f()
  File "C:/web2py_src/web2py/applications/webservices/controllers/sample.py" 
, 
line 94, in test_5
response = client_soap.GetGeoIP(IPAddress='24.194.5.187')
  File "C:\web2py_src\web2py\gluon\contrib\pysimplesoap\client.py", line 165, 
in 
return lambda self=self, *args, **kwargs: self.call(attr, *args, **kwargs)
  File "C:\web2py_src\web2py\gluon\contrib\pysimplesoap\client.py", line 242, 
in call
jetty=self.__soap_server in ('jetty',))
  File "C:\web2py_src\web2py\gluon\contrib\pysimplesoap\simplexml.py", line 56, 
in __init__
self.__document = xml.dom.minidom.parseString(text)
  File "C:\Python27\lib\xml\dom\minidom.py", line 1928, in parseString
return expatbuilder.parseString(string)
  File "C:\Python27\lib\xml\dom\expatbuilder.py", line 940, in parseString
return builder.parseString(string)
  File "C:\Python27\lib\xml\dom\expatbuilder.py", line 223, in parseString
parser.Parse(string, True)
ExpatError: mismatched tag: line 24, column 2

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [web2py] Re: web3py status

2016-09-05 Thread Pbop
I recommend AbilityPy. People want a framework with rich abilities. The Py 
gives a nod that this is a python framework (with abilities). Ability 
preceding Py ensures the framework is at the top of any list of frameworks 
given the alpha sort of A+B for AbilityPy.  The domain is also available 
last I checked. 

On Saturday, September 3, 2016 at 12:43:10 AM UTC-4, Joe Barnhart wrote:
>
> I say pick a new, random name that says nothing about "web" or "python". 
>  In Marketing, they like to pick names with no pre-defined meaning and then 
> "define" it to mean what they want.
>
> Just choose a name that is easy to pronounce for non-English speakers and 
> has a short, catchy sound.  Google it to make sure it doesn't exist 
> anywhere and then copyright the sucker.
>
> Example:  "Cozool"
>
> Means nothing.  One entry defines it as a synonym for "cool" in urban 
> dictionary.  One detraction is the "L" may be a little harder to pronounce 
> by Asians, who typically have difficulty with that English phoneme.
>
> -- Joe
>
> On Thursday, August 18, 2016 at 12:44:05 PM UTC-7, Massimo Di Pierro wrote:
>>
>> It is possible. web3py is code name for experimental stuff. Mostly new 
>> form/grid logic that will be backported to web2py.
>>
>> On Wednesday, 17 August 2016 19:09:43 UTC-5, Jason Solack wrote:
>>>
>>> I saw a post on the developer forum that the newer version of web2py was 
>>> mostly Python 3 compatible... Is it possible that there won't be a need for 
>>> web3py?
>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [web2py] Re: web2py for windows server. IIS or Nginx?

2016-11-02 Thread Pbop
We built a SHIB SSO and OAUTH SSO middleware in web2py that handles 1000+ 
concurrent users with very good results in IIS and ISAPI running a WSGI 
wrapper ala the cookbook instructions. I hear IIS and FastCGI and wonder if 
this is a better deployment option? Are you aware of any advantages of one 
over the other?

On Wednesday, November 2, 2016 at 5:55:36 PM UTC-4, Niphlod wrote:
>
> it's from some time ago but should work without issues. I think some 
> improvements have been made regarding wfastcgi availability as a proper 
> package, but in any case, I'm here to help (and maybe we can revisit the 
> segment on the book with your experience).
>
> : should be "verbatim" but improvements on MS side could have 
> changed little bits. 
>
> On Wednesday, November 2, 2016 at 2:09:07 PM UTC+1, Omi Chiba wrote:
>>
>> OK! I failed last time but it worth try again. I will follow the book try 
>> it later.
>>
>> http://www.web2py.com/books/default/chapter/29/13/deployment-recipes?search=iis#IIS
>>
>> On Wednesday, November 2, 2016 at 3:43:37 AM UTC-5, Niphlod wrote:
>>>
>>> *nix --> nginx with uwsgi
>>> windows --> iis with fastcgi
>>>
>>>
>>> BTW: iis is perfectly fine running production envs. And it's NOT 
>>> difficult.
>>>
>>>
>>> On Tuesday, November 1, 2016 at 8:01:22 PM UTC+1, Omi Chiba wrote:

 Thank you! I will stick to Apache/wsgi for now. 

 On Tuesday, November 1, 2016 at 1:54:37 PM UTC-5, Jim S wrote:
>
> I think the thread you referenced was one discussing deployment on 
> Ubuntu where yes, nginx/uwsgi is preferred.  But, the Windows environment 
> is different (in my opinion) since the Windows nginx is still considered 
> 'beta'.   I wouldn't feel that comfortable using it.  (that said, I do 
> use 
> many other 'beta' projects)
>
> If Apache/mod_wsgi is really frowned upon, should it be noted in the 
> book?
>
> @omi - I migrated from Windows/Apache/mod_wsgi a while back to 
> Ubuntu/nginx/uwsgi.  I think that at that time I switched from using 
> pyodbc 
> to pypyodbc.  I too access MS SQL servers from my ubuntu box using ODBC 
> (along with IBM AS/400 databases).  It works very well for me.
>
> -Jim
>
>
> On Tuesday, November 1, 2016 at 1:33:53 PM UTC-5, Richard wrote:
>>
>> I would say, we don't not don't support it, we just don't maintain a 
>> web2py setup script with Apache... I think the decision was to reduce 
>> the 
>> number of setup script to the bare minium to only the one web2py-devs 
>> are 
>> willing to maintain...
>>
>> That been said, I am sure that if you or someone else take owner ship 
>> to update and maintain Apache setup script because it important for you 
>> we 
>> will bring it back in the scripts folder... But I wouldn't take that 
>> path 
>> before someone demonstrate commitment to the task as we don't want to 
>> get 
>> back stuff that will not be maintain in years in the repo... I guess you 
>> can set your own github repo to demonstrate your commitment and help the 
>> community though, and it could be reference somewhere appropriate in the 
>> book.
>>
>> Richard
>>
>> On Tue, Nov 1, 2016 at 2:22 PM, Dave S  wrote:
>>
>>>
>>>
>>> On Tuesday, November 1, 2016 at 7:51:26 AM UTC-7, Omi Chiba wrote:

 Thank you. I thought the Massimo's comment below and he  also 
 mentioned somewhere we don't want to support Apache anymore... that's 
 why I 
 was nervous. I was thinking to your direction (Moving to Ubuntu) but I 
 use 
 pyodbc to connect Microsoft SQL Server and DB2, also python-ldap.. so 
 not 
 sure if it works the same way.


 "P.S. I stand by Niphlod. He did not say anything offending and his 
 comment was insightful. We do not recommend apache+mod_wsgi because 
 there 
 are better ways (nginx+uwsgi)."


>>> If you have a working Apache configuration, that's an argument for 
>>> staying with it [caveats follow].  Part of the deprecating is because 
>>> Apache configuration is delicate, complicated, and [reportedly] the 
>>> documentation isn't always helpful.  If you're beyond that stage, 
>>> that's 
>>> one objection overcome.  The caveats: there is some concern that Apache 
>>> security updates may be frequent and patching may be delicate and 
>>> complicated [it's been around long enough that may have an "organic" 
>>> structure].
>>>
>>> I think Niphlod has run both IIS and nginx on Windows, and nginx on 
>>> his linux systems, but I'd have to go back through his posts to be sure 
>>> of 
>>> that.
>>>
>>> /dps
>>>
>>>  
>>>
 On Tuesday, November 1, 2016 at 9:39:17 AM UTC-5, Jim S wrote:
>
> I 

[web2py] Re: Need help to debug this error when using URL from gluon/html.py

2016-12-20 Thread Pbop
Issue appears to have come up a few times on stack overflow. 

http://stackoverflow.com/questions/9942594/unicodeencodeerror-ascii-codec-cant-encode-character-u-xa0-in-position-20/9942885



On Tuesday, December 20, 2016 at 2:08:00 PM UTC-5, Dave S wrote:
>
>
> On Tuesday, December 20, 2016 at 10:33:18 AM UTC-8, Lisandro wrote:
>  
> [...]
>
>> Does the ticket store info about the content of vars and args when the 
>> error triggered?
>> I'm sending tickets2email, so I don't conserve the original ticket, but 
>> If I could find that info in the ticket, I guess I could disable 
>> tickets2email in scheduler and wait for the error to appear again.
>>
>
> Generally, the vars are not shown in the ticket, but why not just call the 
> logger at that point?
>
> The error seems to be unicode (UTF-8, probably) leaking into a URL, and 
> aren't URLs supposed to be ASCII, and special characters are to be escaped 
> (usually as "%20" and the like)?
>
> /dps
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Any ideas on how to prepare web2py apps for GDPR

2017-07-06 Thread Pbop
Making an app ready for GDPR compliance does not have some checklist and is 
an ongoing commitment to privacy and security by design. Web2Py aligns well 
with GDPR in many ways out of the box.  Here is a fairly comprehensive 
toolkit to assist in all of the moving pieces for GDPR compliance from a 
vendor called Nymity. Nymity has found some 55 compliance areas (out of 99) 
 you may have to prove compliance or to demonstrate why compliance does not 
apply. They have a 45 minute video that gets into just enough detail of all 
that is involved. Unfortunately, pseudonimization is only a small part of 
what is fairly large project for compliance. 

https://www.nymity.com/gdpr-toolkit.aspx

If anyone has a less involved toolkit that can streamline compliance do 
please share. 


On Thursday, July 6, 2017 at 7:17:40 AM UTC-4, Pierre wrote:
>
> for cryptographists and "bunker" amateurs :
>
> http://bitwiseshiftleft.github.io/sjcl/
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Two database join query

2017-09-01 Thread Pbop
In SQL Server, you can run queries across database tables following the 
syntax you mention if you have permissions to access both databases and 
they are on the same server. I presume the same is true on other (not all) 
database engines. If you have the SQL, then use the executesql feature and 
you are golden. 

If you need to supply query parameters at run time,  build a runner. 

In a module or controller...

SCORM_FIND = """
SELECT TOP 1
a.history_id,
a.highest_score,
a.history_status,
b.factorA,
b.factorB

FROM
DB1.SCORM a inner join DB2.SCORMFactor b on a.id = b.id
WHERE
a.registration_id = ?
"""


from gluon.contrib.pypyodbc import ProgrammingError
from gluon import *
import traceback

def run(sql, *params, **kw):
res = SQLResponse()
if sql == None:
res.setError('SQL was None')
return res
try:
kwargs = dict(placeholders=params, as_dict=True)
if 'no_return' in kw and kw['no_return'] == True:
kwargs['as_dict'] = False
res.rows = current.db.executesql(sql, **kwargs)
except Exception, e:
res.setError(str(e), traceback.format_exc(), current.db._lastsql)
return res
res.success = True
return res

class SQLResponse(object):
def __init__(self, rows=[], success=False, error=None):
self.rows = rows
self.success = success
self.error = dict(msg=None, trace=None)
self.setError(error)
def setError(self, error, rawStack=None, sql=None):
if error == None:
return
self.success = False
self.error['msg'] = error
if rawStack != None:
self.error['trace'] = rawStack.split("\n")
if sql != None:
self.error['sql'] = sql


In your controller:

lookupRes = sql.run(sql.SCORM_FIND, registrationId)

I did not write this so although it seems pretty strait forward. We use 
this quite often when we need to do things a little outside of the dal but 
still get all the honey in the dal. I suspect that since the SQL is 
declared, you get some marginal bumps at run time as well. 









On Monday, August 28, 2017 at 12:04:29 PM UTC-4, Artem wrote:
>
> Hello !
> Hope someone can help . Thanks in advance !
> I have two database :
> db1 = DAL('sqlite://first.sqlite')
> db2 = DAL('sqlite://second.sqlite')
> with tables :
> db1.define_table('table1',
> Field('id',requires=IS_NOT_EMPTY()),
> Field('pid',type='integer'),
> Field('title',type='string'),
> )
> and
> db2.define_table('table2',
> Field('id',requires=IS_NOT_EMPTY()),
> Field('pid',type='integer'),
> Field('data',type='string'),
> )
> How to execute sqlite join ,something like: 
> sql ="SELECT db1.id, db1.title,db2.data FROM db1.table1 INNER JOIN 
> db2.table2 ON db2.table2.pid == db1.table1.pid"
> db1.executesql(sql) doesn't work 
>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: DAL write permission error

2017-12-07 Thread Pbop
Eureka!!! A little embarrassed I missed that. Oh well,  I have learned how 
to fish! Much appreciated. Being able to connect so easily to a database 
from a shell script is a HUGE problem I am trying to solve. 

On Thursday, December 7, 2017 at 5:04:52 PM UTC-5, Val K wrote:
>
> OK, just try 
> print  'c:\web2py\applications\testme\databases'
> and you will be surprised
>
>
>
> On Friday, December 8, 2017 at 12:14:18 AM UTC+3, Pbop wrote:
>>
>> Sorry for not being more clear in my original question so would like to 
>> offer more specific information 
>>
>> I have a SQLITE database located at 
>> c:\web2py\applications\testme\databases
>>
>> When running web2py, I have no problem connecting to the database. It 
>> loads the test data and works just fine. Web2Py is working great. 
>>
>> The problem is when I try to connect to the database from the python 
>> command line to db = 
>> gluon.DAL('sqlite://storage.sqlite',folder='c:\web2py\applications\testme\databases"),
>>  
>> I get an OperationalError. If I I supply the DAL connection string to an 
>> empty folder it is creating the database and connecting just fine and have 
>> full access to the DAL api. So from the python shell, the DAL is connecting 
>> fine to a SQLITE database that was not created by Web2Py, but is not 
>> connecting to a database created from Web2Py. 
>>
>> I have downloaded PyDAL into Python and can import either from there or 
>> from the Web2Py/gluon/packages/dal folder and neither will allow me to 
>> connect to a Web2Py created SQLITE database on a Windows Machine. I have 
>> ruled out different versions of PyDal and I am an administrator. I am left 
>> thinking I may be missing a parameter I have not groked in the docs, or 
>> Web2Py may add a protection to not allow connections outside of the Web2Py 
>> context. 
>>
>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: DAL write permission error

2017-12-07 Thread Pbop
Sorry for not being more clear in my original question so would like to 
offer more specific information 

I have a SQLITE database located at c:\web2py\applications\testme\databases

When running web2py, I have no problem connecting to the database. It loads 
the test data and works just fine. Web2Py is working great. 

The problem is when I try to connect to the database from the python 
command line to db = 
gluon.DAL('sqlite://storage.sqlite',folder='c:\web2py\applications\testme\databases"),
 
I get an OperationalError. If I I supply the DAL connection string to an 
empty folder it is creating the database and connecting just fine and have 
full access to the DAL api. So from the python shell, the DAL is connecting 
fine to a SQLITE database that was not created by Web2Py, but is not 
connecting to a database created from Web2Py. 

I have downloaded PyDAL into Python and can import either from there or 
from the Web2Py/gluon/packages/dal folder and neither will allow me to 
connect to a Web2Py created SQLITE database on a Windows Machine. I have 
ruled out different versions of PyDal and I am an administrator. I am left 
thinking I may be missing a parameter I have not groked in the docs, or 
Web2Py may add a protection to not allow connections outside of the Web2Py 
context. 

>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] isomorphic rendering ... a possible future for web2py?

2017-12-01 Thread Pbop
Here is an interesting read for the community. 
https://whatisjasongoldstein.com/writing/universal-jinja/

The money quote is: "The reason to write fancy frontends isn’t because it’s 
faster (it’s not), it’s to decouple use actions from pageviews."

Enter a new term for at least my vocabulary: isomorphic rendering. 

While isomorphic rendering is bleeding edge at the moment, if the modern 
web app development winds are shifting, it begs the question as to whether 
embracing client-side frameworks is just keeping up with the Jones and if 
there is not a real opportunity to re-invent web2py in a more profound way. 

A criticism, fair or not, is web2py has not really moved forward other than 
incremental improvements. I personally would prefer to keep development in 
one ecosystem as much as possible. As cool as Vue.js is, it would be super 
cooler (and a better use of developer time) to see gluon extended to 
support client-side forms, views, data-tables, visualizations, local 
databases, database synchronization, dish washers, coffee makers and floor 
sweepers to be declared in web2py / python to produce client-side JS. 
Transpiling in small blocks is fine, but there are other ways it might be 
done. 

Embrace JS frameworks or radically rethink gluon (or is that not 
practical)? Thoughts? 




-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] cool tool to browse sqlite database

2017-12-03 Thread Pbop
http://sqlitebrowser.org/


-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] DAL write permission error

2017-12-03 Thread Pbop
On windows in command prompt, running latest version of web2py

When on any directory other than web2py\applications\\databases, 
this works fine:
db = gluon.DAL('sqlite://storage.sqlite')  and creates a new database or 
connects to an existing database. 

When I go db = 
gluon.DAL('sqlite://storage.sqlite',folder='c:\web2py\applications\\databases")
  
it is finding the SQLite database, but throwing: 
OperationalError: unable to open database file which is suggesting to me it 
does not have permission to read the file. I am an administrator on the pc 
and can connect to the DB fine in web2py or SQLite browser. 

Any suggestions?


-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: wfastcgi on IIS ... no more wfastcgi.py script?

2018-02-14 Thread Pbop
For what it is worth, I have web2py deployed under IIS using the ISAPI 
recipe and web2py screams in speed. The only requirement is the code has to 
be thread safe and have not yet run into thread safe problems in how we 
deploy web2py. If it is, you will get much faster performance over fastcgi. 

On Wednesday, February 14, 2018 at 2:07:15 PM UTC-5, Marcelo Huerta wrote:
>
>
> El viernes, 18 de diciembre de 2015, 5:01:02 (UTC-3), Massimo Di Pierro 
> escribió:
>>
>> Could you put this in the book? Thanks Tim.
>>
>>
>>
> I think that in spite of your request this has not yet been updated in the 
> book. I still see a mention of a script called "wfasctgi.py" (sic), and 
> nothing about this new methodology. 
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: An Easy way to Support ADFS / AZURE / OKTA / Sibboleth and other SAML2 SSO Scenarios

2018-12-31 Thread Pbop
The key thing to understand when using the Shibboleth SP is that you are 
protecting a virtual folder. When you land on that folder, which can also 
be a web2py route, the SP checks to see if you are authenticated and if not 
sends you to the IDP. Only once you are authenticated does the end point 
load. Once authenticated, exposed in the header is identity information 
about the user. It is sort of like Active Directory where once 
authenticated with AD, the header contains the users login id. The 
difference is the identify information in the header is defined by what 
identity attributes the IDP wants to release to the SP and can contain any 
user identity information including login id, employee  number, first name, 
last name, email, department, shoe size... really whatever identity 
information the IDP provides and which it wants to release to the SP. 

In the example below, I am getting a variety of header fields that I know 
the SP is getting. An API call is made to another function that looks the 
user up in an external system and if found redirects the user into that 
system with signed url. If not found, the identity information is used to 
add the person on the fly also to that external system which then lands the 
user into their home page. Either way, our Web2Py app is used very narrowly 
to handle the results of authentication pulling the needed information to 
route the user into this external application either as an existing user or 
as a new user. Truth be told, any technology that can read the browser 
header can be used, but in Web2Py it is ridiculously easy.  

To SAMLize your web2py app go 
to https://wiki.shibboleth.net/confluence/display/SHIB2/Installation and 
download and install the SP to the system of your choice. 

One last thing, testshib.org is no more, and they talk about docker 
containers to download working environments; however, it looks like this 
site is able to do the same thing: https://samltest.id/

I am not sure how much the code snippet will help but here you go. Happy 
New Year All! 

'''
Shibboleth Login Functionality
'''

from gluon.storage import Storage
import datetime, requests, json, traceback

def start():

# Load Shibboleth Attributes
data = request.env
ISU = Storage()

# ISU.university_id = data['HTTP_ISUUNIVERSITYID']
ISU.university_id = data['HTTP_SHIBISUUNIVERSITYID']
ISU.email = data['HTTP_SHIBISUOFFICIALEMAIL']
ISU.name = data['HTTP_SHIBSN']
ISU.firstname = data['HTTP_SHIBGIVENNAME']
ISU.shib_id = data['HTTP_SHIBISULOGONID']
#ISU.university_id = 'foobar'

if (ISU.university_id == '' or ISU.university_id == None) :
ISU.university_id = ''
# Check if we should view debug
if lweb.enable_debug == True:
response.view = 'login/start.html'
else:
response.view = 'login/redirect.html'
error = None
# Check if we have the university id
if (ISU.university_id == '' or ISU.university_id == None) and (ISU.shib_id 
== '' or  ISU.shib_id == None) :
error = 'No Darn University Id found'
return locals()
# Load the client state from ISU
lwebInfo = None
try:
lwebInfo = Storage(getState(ISU.university_id))
except:
error = 'Error loading Remote State from AbilityLMS:%s' % 
traceback.format_exc().replace("\n", '')
return locals()
# Check for errors from LWEB api
if lwebInfo != None:
if lwebInfo.hasError == True:
error = 'Error from AbilityLMS:%s' % lwebInfo.stateObj['debug']
return locals()
elif lwebInfo.stateObj['Result'] == 'INVALIDDATE':
error = 'Invalid Date sent to AbilityLMS API: %s' % 
lwebInfo.stateObj['URL'].split('!~Redhead!~')[1]
return locals()
elif lwebInfo.stateObj['Result'] == 'INVALIDLEARNER':
xLearner_LoginID = 'Learner_LoginID=' + ISU.university_id
xLearner_EmailAddress = '_EmailAddress=' + ISU.email
xLearner_FirstName = '_FirstName=' + ISU.firstname
xLearner_LastName = '_LastName=' + ISU.name
xLearner_ShibLoginID = '_LoginID=' + ISU.shib_id
xLoginURL = lweb.AbilityLMS_URL + 
'/Programs/Custom/Control/ISU_Register.wml?' + xLearner_LoginID + 
xLearner_EmailAddress + xLearner_LastName + xLearner_ShibLoginID + 
xLearner_FirstName
redirect(xLoginURL + '=%s' % lwebInfo.stateObj['ClientState'])

elif lwebInfo.stateObj['Result'] == 'SUCCESS':
redirect(lweb.AbilityLMS_URL + lweb.landing_path + '?remoteST=%s' % 
lwebInfo.stateObj['ClientState'])
else:
error = 'Unkown Error:%s' % BEAUTIFY(lwebInfo)
return locals()
return locals()



On Saturday, December 8, 2018 at 10:37:13 AM UTC-5, Pbop wrote:
>
> Greetings Fellow Web2Pyers,
>
> It's the season of giving. I hope what I share inspires others to share 
> some of their tips and tricks in Web2Py that others can use! Many thanks to 
> the community for your great help in the past! 
>
> This post assumes the reader has limited exposure to SAML2. The solution 
> here allows any Web2Py app hosted on servers you control to work with any 
> SAML2 IDP (in theory). 
>
> SAML2 is a mark-up language to support federated single-sign services 
> which i

[web2py] Re: An Easy way to Support ADFS / AZURE / OKTA / Sibboleth and other SAML2 SSO Scenarios

2019-01-01 Thread Pbop
Should be http://www.testshib.org/

Once your SP is installed test it against the IDP 
at... https://samltest.id/start-sp-test/

Or set up a test account with OKTA which has a free IDP account you can 
create. Pretty sure the same is true for Azure, but that was provided to me 
by the client. Once you get over the hump of the details is setting up the 
SP and all the options that go into the shibboleth XML file, we have not 
seen yet an IDP that is not pretty strait forward and we have done 
integrations against Shibboleth, ADFS, Azurre, OKTA and home grown SAML2 
IDPs. 





On Monday, December 31, 2018 at 10:33:36 PM UTC-5, 黄祥 wrote:
>
> cant access http://testshib.org
>
> following https://wiki.shibboleth.net/confluence/display/SHIB2/IdPInstall 
> *not succeed*
> docker pull debian
> docker run -it debian /bin/bash
>
> apt update
> apt install -y default-jdk curl unzip 
> export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/
> curl -L -O -C - http://
> shibboleth.net/downloads/identity-provider/latest/shibboleth-identity-provider-3.4.2.zip
> unzip shibboleth-identity-provider-*.zip
> shibboleth-identity-provider-*/bin/install.sh
> java -jar /opt/shibboleth-idp/war/idp.war
>
> no main manifest attribute, in /opt/shibboleth-idp/war/idp.war
>
> following 
> https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLinuxRPMInstall
> *not succeed*
> docker pull centos
> docker run -it centos /bin/bash
>
> cat << EOF > /etc/yum.repos.d/shibboleth.repo
> [shibboleth]
> name=Shibboleth (CentOS_7)
> # Please report any problems to https://issues.shibboleth.net
> type=rpm-md
> mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7
> gpgcheck=1
> gpgkey=https://
> shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key
> enabled=1
> EOF
> yum install -y shibboleth
> /sbin/service shibd start
>
> Redirecting to /bin/systemctl start shibd.service
> Failed to get D-Bus connection: Operation not permitted
>
> best regards,
> stifan
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] An Easy way to Support ADFS / AZURE / OKTA / Sibboleth and other SAML2 SSO Scenarios

2018-12-08 Thread Pbop
Greetings Fellow Web2Pyers,

It's the season of giving. I hope what I share inspires others to share 
some of their tips and tricks in Web2Py that others can use! Many thanks to 
the community for your great help in the past! 

This post assumes the reader has limited exposure to SAML2. The solution 
here allows any Web2Py app hosted on servers you control to work with any 
SAML2 IDP (in theory). 

SAML2 is a mark-up language to support federated single-sign services which 
include Microsoft ADFS and AZURE, Shibboleth, OKTA to name a few. What's 
cool with federated SSO is your web2py app can support SSO with any of 
these services with only registration information needing to be shared. 
Conversely, when you authenticate into any of these providers, you gain 
access to any other application with the same credentials also registered 
into the provider. 

For those not familiar with how SAML2 works, there are two pieces of 
technology needed: an IDP (identity provider) and the SP (service 
provider).  Microsoft refers to the IDP as Claims Provider and SP as 
Relaying Party. The IDP is where the user authenticates and contains 
identity information about the user and what applications the user is 
allowed to access. The SP is the application (your Web2Py app)  that wants 
to use the IDP for sign-on services. When the user lands to the SP and is 
not authenticated, the user is redirected to the IDP. The IDP will present 
the user with a login form which means the user is authenticating into the 
IDP, not directly into your application. On submission of credentials, the 
IDP completes the sign-on process and redirects the authenticated and 
authorized user back to the SP (your application). When redirecting the 
user back to the SP, the post back includes whatever identity information 
the IDP is authorized to release to the SP such as first and last name, 
email, organization... This is different than CAS or AD which returns only 
a login name or unique identifier. The IDP can release any information it 
has about the user which means your app gains access to both authentication 
and identity management services.  

While there are a number of python based SAML2 implementations including a 
5 year old web2py version, it gets fairly deep into details that can be 
entirely avoided with what I am about to share. 

Shibboleth is a SAML2 implementation you can use to make your Web2Py app 
SAML2 ready immediately. Shibboleth is used mostly in higher education and 
includes both IDP and SP software installations. Both installations are 
open source downloads that you can install to a web server (Unix and IIS), 
but we're only interested in the service provider installation. The service 
provider when installed to your server can protect a folder, including a 
web2py application/controller/function folder. By protecting the folder 
your web2py app is running against, you instantly gain SAML2 capability and 
out of the box support to any SAML2 IDP. This is because all of the 
identity attributes are now available in value pairs in the header (the 
web2py request.env object) once the user is authenticated. 

To show how easy this is, let's say the folder we want the Shibboleth 
service provider to protect is welcome\secure where secure is your 
controller in the welcome app using a default function. When the user lands 
to that folder, the Shibboleth SP kicks in and redirects the user to the 
IDP. Your web2py app will not even respond until Shibboleth has 
authenticated you. The user logs on at the IDP, the IDP determines the user 
is authenticated and then redirects back to the protected folder. Since 
Shibboleth has determined you are now authorized to use the folder, your 
web2py app fires and all of the identity attributes are now available for 
your web2py application in the request.env object to use as you need. 

Here is a set of headers from a Shibboleth authentication... This 
represents what the IDP is releasing back to the SP and in turn represent 
header variables available to your web2py app.  

http_cn : Joe Shmoe
http_officialemail : jsh...@schmoeland.com
http_uclalabasuuid : 202e96f3-919f-479e-80e1-9a03f2416b9d
http_uid : f0007939

For your web2Py app to use this data it is simple variable assignments...

# Load Shibboleth Attributes
data = request.env
ucla = Storage()   
ucla.university_id = data['http_uid']
ucla.email = data['http_officialemail']
...
 
# Onward... 

What identity attributes (header variables) are returned are a function of 
the Shibboleth SP configuration with whatever IDP you are using and what 
your app needs. Shibboleth handles producing the metadata the IDP needs, 
login and logout services, offers comprehensive logging and has an active 
community. To make your app SAML2 ready, you register the path in the 
Shibboleth configuration file. You can get started with this approach at 
www.testshib.org. 

Pay it forward! 


-- 
Resources:
- http://web2py.com
- 

Re: [web2py] Web2Py with LDAP and SAML : Is it worth it for Windows ?

2019-08-19 Thread Pbop
I am not familiar enough with how AUTH works but can offer a perspective 
that might help to the level you want AUTH to support AD or SAML2 SSOs. 

In both AD and SAML using the Shibboleth IIS Plug-in, you are in essence 
designating a protected folder on the IIS web-server to require 
authentication. In other words, if you land to that protected folder and 
are NOT authenticated, IIS presents to the user an IIS generated 
Challenge/Response screen to enter credentials for AD or sends you to the 
IDP server (which can be any SAML2 IDP such as Shibboleth, ADFS, Azzure, 
Google, Okta... ) for authentication. In both cases once IIS determines you 
are authenticated (not the web-app), you ultimately are redirected back to 
the protected folder as an authenticated user. As an authenticated user, 
your browser header now has your login id in the header for AD and whatever 
identity attributes are released from the IDP server such as login id, 
emaiil, employee number, full name, shoe size... The catch to SAML2 is the 
identity attributes can be whatever you agree to in the initial 
configuration. 

My point is authentication is managed at the web-server and does not need 
to be in the web application. What does need to be in the web application, 
if AUTH is to be used, is some sort of mapping of the browser header 
variables to appropriate columns and extending the data model if additional 
identity attributes are needed once the user is authenticated. 

Perhaps I am over simplifying! Hope this helps! 


On Sunday, August 18, 2019 at 1:35:32 AM UTC-4, Massimo Di Pierro wrote:
>
> web2py or py4web? I could use some help getting it to work for py4web.
>
> On Thursday, 1 August 2019 07:08:10 UTC-7, Davidiam wrote:
>>
>> We are working on a Shibboleth implementation now. So far it is working 
>> better than the other tests we did on Windows.
>>
>> We wanted to test it using a localhost Shibboleth sp and idp but it 
>> wasn't clear to us how we needed to configure it.
>>
>> Thanks for the tip! 
>>
>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/fc1d4032-47a5-4ad0-aeb0-59b0eced0d64%40googlegroups.com.


[web2py] Re: Whats the best way to create an Android or iOS app for web2py project

2019-09-11 Thread Pbop
Suggest you google NSB/App Studio. A simple easy to use tool to create 
native iphone/droid apps. Other tools out there of course, but this has a 
manageable learning curve, Use Web2Py or Py4Web for server side back-end. 

On Friday, September 6, 2019 at 7:28:30 AM UTC-4, Rahul wrote:
>
> Hey Everyone,
>  I have some interesting questions (It might have been asked before) I 
> want to know - 
>
> 1) Whats the best way to create an Android or iOS app for web2py project? 
>
> 2) How can we access a postgres database residing on linux server for a 
> web2py application from such an application?
>
> 3) Can we use python to write such apps?
>
> 4) Has anyone written any apps that do the above successfully?
>
>
> Rahul
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/e4c72007-22b1-4d50-a663-77e097e31114%40googlegroups.com.


Re: [web2py] Web2Py with LDAP and SAML : Is it worth it for Windows ?

2019-07-24 Thread Pbop
Suggest you research Shibboleth as a SAML layer for your web2py app or if 
choose to use another framework. You can use Shibboleth to protect a virtual 
folder to any SAML IDP. If the protected folder is your web2py app, SHIB does 
the authentication and your web2py app can use any of the identity attributes 
returned in the header to complete an SSO or registration workflow. We have 
successfully used Shib to connect to Adfs, azzure, google, shibboleth and 
custom IDPs. There is a lot to learn about SAML and Shib is extremely well 
documented. 

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/fdc1520b-3bab-426d-8cd0-4f1158cdecf1%40googlegroups.com.