OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-j message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [sca-j] ISSUE 27 - Security Annotations in generated Component Type -proposal comments


Hello All,

Here is the latest proposal with the update for some of Simon's comments: 1, 3, 5, 18.19.

For 2, one defining  SCA_PREFIX constants, I need some suggestions where should we define it, maybe in the section 7 of Java API?

For 4, of moving the annoation later than annotation, I can move the chapter 10(policy) to chapter 8, so the annotation will be chatper 9 , if others agree.

For 6-17, it is the change so the content I did not update, and not related to ISSUE27, I agree with Mike to handle it in a seperate issue. I can take the new issue too.

Thank you.

(See attached file: sca-javacaa-1.1-spec-cd02+Issue27.pdf)(See attached file: sca-javacaa-1.1-spec-cd02+issue27.doc)

Regards,

Yang Lei

WebSphere SCA Feature Pack Development -- SCA Architect
Phone: (919) 543 8887 T/L 441-8887
e-mail: yanglei@us.ibm.com

SCA Feature Pack: http://washome.austin.ibm.com/xwiki/bin/view/SCA2Team/WebHome
RTP Technical Vitality: http://swgcomm.bluehost.ibm.com/siteFiles/labs.html?location=SEUS&type=cluster
WebSphere Lab Advocate for Royal Bank of Scotland


Inactive hide details for Mike Edwards <mike_edwards@uk.ibm.com>Mike Edwards <mike_edwards@uk.ibm.com>


          Mike Edwards <mike_edwards@uk.ibm.com>

          02/02/2009 09:11 AM


To

"OASIS Java" <sca-j@lists.oasis-open.org>

cc


Subject

Re: [sca-j] ISSUE 27 - Security Annotations in generated Component Type - proposal comments


Folks,

Most but not all of the comments below don't relate to the changes proposed for Issue 27, but are problems
related to the pre-existing material in the Java CAA spec (CD02). They are valid points but I don't think it helps
to lump them in with comment about the specifics of Issue 27. I'd prefer a separate issue to deal with problems
relating to the CD02 Java CAA spec and its handling of the Policy annotations for Java.

If anyone disagrees with me, shout load - and soon - otherwise I'll raise the new issue and build a proposal to
fix the problems.


Yours, Mike.

Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431
Email: mike_edwards@uk.ibm.com

From: Simon Nash <oasis@cjnash.com>
To: sca-j@lists.oasis-open.org
Date: 30/01/2009 19:41
Subject: Re: [sca-j] ISSUE 27 - Security Annotations in generated Component Type - proposal comments





I reviewed this document and I have the following comments:

1. The definition of @Intent is missing from chapter 8.


Done

2. Section 8.2 should not define the Constants interface and
   the SCA_PREFIX constant.  These should be defined in a
   separate section.

3. In section 8.19, the description of @Qualifier is hard to
   understand.  It says "The @Qualifier annotation can be applied
   to an attribute as an @Intent annotation to indicate the
   attribute provides qualifiers for the intent."  A clearer
   description would be "The @Qualifier annotation can be
   applied to an attribute of an intent annotation definition
   to indicate the attribute provides qualifiers for the intent.
   The annotation definition containing the @Qualifier annotation
   MUST be annotated with @Intent."

Done

4. The forward references from chapter 8 to chapter 10 make it
   hard to understand the chapter 8 descriptions of these annotations
   without reading chapter 10 first.  Could we move chapter 10 to
   a new position between chapters 6 and 7?

5. In section 10.1, the example classes should not be declared
   in the package org.oasisopen.sca.annotations.  Instead, they
   should import the @Requires and @Reference annotation
   definitions from that package.


Done

6. The formal syntax for the @Requires annotation is specified as
     @Requires( “qualifiedIntent” | {“qualifiedIntent” [, “qualifiedIntent”]}
   which would only allow up to two intent strings to be specified.
   I believe this should say
     @Requires( “qualifiedIntent” | {“qualifiedIntent” [, “qualifiedIntent”]...}

7. The formal syntax for qualifiedIntent also seems more
   restrictive than it should be.  It is given as
     qualifiedIntent ::= QName | QName.qualifier | QName.qualifier1.qualifier2
   which would only allow up to two levels of qualification.
   I believe this should say
     qualifiedIntent ::= QName[.qualifier]...

8. Similar to comment 6 above, the definition of qualifiers in
   section 10.2 should be
     qualifiers ::= ”qualifier” | {“qualifier” [, “qualifier”]... }

9. In section 10.2, the definition of qualifier is
     qualifier ::= NCName | NCName/qualifier
   which uses "/" as a separator.  This is inconsistent with
   section 10.1, which used "." as a separator.

10. In section 10.2.1, the last sentence of the second paragraph
   is misleading.  It says "These String constants are then
   available for use with the @Requires annotation and it should
   also be possible to use one or more of them as parameters to
   the @Intent annotation."  In fact they cannot be used as
   parameters to the @Intent annotation, but they are available
   for use as parameters to the specific intent annotation that
   defines them.

11. Section 10.3 says that intent annotations can be used on a class,
   an interface, a method or a field.  However, the definitions in
   chapter 8 say that these annotations can also be used on a parameter.
   The bulleted list in section 10.3 should include a bullet for
   "constructor parameter".

12. In section 10.3, the second last paragraph says that "If an
   annotation is specified at both the class/interface level and
   the method or field level, then the method or field level
   annotation completely overrides the class level annotation of
   the same type."  In this, the word "type" is not very precise.
   It would be clearer to say "... the same base intent name."
   using the precise terminology of section 10.1.

13. There are a number of problems with Example 2b in section 10.3.1.
   a. The <service> definitions for HelloService and HelloChildService
      should be inside the <component> definitions for
      HelloServiceComponent and HelloChildServiceComponent, not
      free-floating inside the <composite> definition.
   b. The <operation> definitions should not be within <component>
      defintions.  I believe the intention may have been to put them
      within <service> definitions.
   c. <operation> elements within <service> definitions were
      recently removed from the Assembly spec because of a decision
      by the Policy TC.
   d. The contents of the <operation> definitions don't seem
      consistent.  For the operations in HelloService, the <operation>
      elements provide fully explicit definitions of the intents that
      apply to the operations.  However, for the operations in
      HelloChildService, some of the <operation> elements only provide
      partial definitions of the intents that apply.  Specifically,
        "hello" specifies "confidentiality/transport" but does not
           specify "authentication" and "integrity/transport".
        "helloWorld" specifies "authentication" but does not
           specify "integrity/transport" or "confidentiality/message"

14. Section 10.4 refers to a component type document associated
   with a Java class.  We no longer have component type documents
   for <implementation.java>.  Should this reference be removed?

15. Section 10.4.  The general rule for intents is not that they
   represent fundamental requirements of an implementation, but
   that they represents restrictions that can't be relaxed.  So
   an intent specified by an implementation could be overriden by
   some other intent that is more restrictive, but not by some
   other intent that is less restrictive.

16. Section 10.5 says that @PolicySets can be used on a class,
   an interface, a method or a field.  However, section 8.17 says
   that this annotation can also be used on a parameter.  The
   bulleted list in section 10.5 should include a bullet for
   "constructor parameter".

17. In the example in section 10.6.1, the Java interface declarations
   use dot-qualified names, which isn't correct Java syntax.  Also,
   these names use a "service." prefix which should be changed to
   "services." so that it is consistent with the code following
   these delarations.

18. In section 10.6.2, the PermitAll and DenyAll bullets have some
   added text that is bulleted but shouldn't be.


Done

19. In section 10.6.2.1, should the fromUSDollarToCurrency method
   be declared in the AccountService interface?  It currently
   only appears in the implementation class.


Done

 Simon

Yang Lei wrote:
> I have a couple of questions if we will require interface annotations
> for these implementation policy:
>
> 1. JSR 250 2.1 "2.1General Guidelines for Inheritance of Annotations"
> states that
>
> 3. The interfaces implemented by a class never contribute annotations to
> the class itself or any of its members.
>
> SCAJ 10.3.1 *Inheritance And Annotation *
> states that
>
>       The inheritance rules for annotations are consistent with the
>       common annotation specification, JSR 250.
>
>
>
> If we do introduce inheritance rules that is different from JSR250, what
> our inheritance rule is , e.g. do we allow coexistence of both
> annotation on interface and class, do they have to be the same? If it is
> not, who takes precedents
>
> 2. From semantic perspective, this interface annotation worries me, what
> happens if different implementation of the same interfaces needs to have
> different implementation policy? Does it mean developer needs to achieve
> it through new interface?
>
>
> Due to the above issue, I would prefer the <operation/> approach than
> the interface annotation to make things simple. Then the only remaining
> issue needs to be resolved is : do we need to describe the naming
> convention for the generated PolicySet when the annotation having
> parameters , e.g. @RunAs, @RolesAllowed. Or we say it is vendor specific.
>
> Here is the latest proposal on ISSUE 27 , changed on top of cd02.
>
> /(See attached file: sca-javacaa-1.1-spec-cd02+Issue27.pdf)//(See
> attached file: sca-javacaa-1.1-spec-cd02+issue27.doc)/
>
>
> Please let me know if you have problem reviewing it. I did save the word
> version after turning on the "Review Pane", I can see most of the
> changes are mine except some "Formatted Bullets and Numbering" from Mike
> due to certain sections are added.
>
>
> Thank you.
>
> Regards,
>
> Yang Lei
>
> WebSphere SCA Feature Pack Development -- SCA Architect
> Phone: (919) 543 8887 T/L 441-8887
> e-mail: yanglei@us.ibm.com
>
> SCA Feature Pack:
>
http://washome.austin.ibm.com/xwiki/bin/view/SCA2Team/WebHome
> RTP Technical Vitality:
>
http://swgcomm.bluehost.ibm.com/siteFiles/labs.html?location=SEUS&type=cluster 
> <
http://swgcomm.bluehost.ibm.com/siteFiles/labs.html?location=SEUS&type=cluster>
> WebSphere Lab Advocate for Royal Bank of Scotland
>
>
> Inactive hide details for David Booz/Poughkeepsie/IBM@IBMUSDavid
> Booz/Poughkeepsie/IBM@IBMUS
>
>
>                         *David Booz/Poughkeepsie/IBM@IBMUS*
>
>                         01/25/2009 05:10 PM
>
>                  
>
> To
>                  
> sca-j@lists.oasis-open.org
>
> cc
>                  
>
> Subject
>                  
> Re: [sca-j] ISSUE 27 - Security Annotations in generated Component Type
> - proposal comments
>
>                  
>
>
> I'm ok with the idea of "encouraging" interface annotation. With the
> external attachment mechanism, it should also be possible to avoid
> modification of the interface (at least for WSDL anyway) if necessary.
>
> Dave Booz
> STSM, BPM and SCA Architecture
> Co-Chair OASIS SCA-Policy TC and SCA-J TC
> "Distributed objects first, then world hunger"
> Poughkeepsie, NY (845)-435-6093 or 8-295-6093
> e-mail:booz@us.ibm.com
>
> Inactive hide details for Mike Edwards ---01/23/2009 06:20:02 AM---Dave,
> 1) What I am suggesting is that IF a developer wants Mike Edwards
> ---01/23/2009 06:20:02 AM---Dave, 1) What I am suggesting is that IF a
> developer wants to have Policy
>
> From:                
> Mike Edwards <mike_edwards@uk.ibm.com>
>
> To:                
> "OASIS Java" <sca-j@lists.oasis-open.org>
>
> Date:                
> 01/23/2009 06:20 AM
>
> Subject:                
> Re: [sca-j] ISSUE 27 - Security Annotations in generated Component Type
> - proposal comments
>
> ------------------------------------------------------------------------
>
>
>
>
> Dave,
>
> 1) What I am suggesting is that IF a developer wants to have Policy
> annotations on a method or on a parameter in the method, then the way
> they have to do this is to take the interface file for the service or
> reference and place the annotations into that file. If they can't change
> that
> file, then tough, they can't have the policy annotations on the method
> or parameter.
>
> Once the Policy metadata is placed onto the interface artifact like
> this, then it CAN be part of the ComponentType, since the ComponentType
> does directly reference the interface artifact. I am sure that we will
> have to look into the mapping of Policy annotations from Java interfaces
> to WSDL interfaces when we do this, but I hope that this is a "simple"
> extension of the JAX-WS mapping rules.
>
> 2) I have resisted the idea that features of the implementation which
> affect the overall Assembly do not appear in the ComponentType.
> If you decide that some aspect of the implementation artifact, which do
> affect the Assembly layer, are transmitted through some other
> means, then I think that the "other means" has to be known to the
> Assembly layer. Otherwise how can the Assembly layer make sense
> of the implementation. It is NOT enough for the Java runtime to know
> these things, since the other components around the implementation
> in question may not be Java. Consider the case where this implementation
> offers a service that is used by a BPEL process...
>
> My proposal is to force the developer to attach the Policy annotations
> to the interface file in this case. If this is not acceptable, then maybe
> we shall have to reconsider the removal of <operation/> elements - or
> else think of a new mechanism to represent method and parameter
> level metadata.
>
> Yours, Mike.
>
> Strategist - Emerging Technologies, SCA & SDO.
> Co Chair OASIS SCA Assembly TC.
> IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
> Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431
> Email: mike_edwards@uk.ibm.com
> From:                  David Booz <booz@us.ibm.com>
> To:                  sca-j@lists.oasis-open.org
> Date:                  22/01/2009 15:59
> Subject:                  Re: [sca-j] ISSUE 27 - Security Annotations in generated
> Component Type - proposal comments
>
>
> ------------------------------------------------------------------------
>
>
>
> On point two, since there is no way to reflect an annotation on a method
> in the CT (because there's no method element in the CT), are you
> suggesting that somehow the interface is modified? I don't understand
> how that works, esp. if the interface is an artifact that was provided
> by the developer.
>
> I don't think it's true that annotations MUST show up in the CT. The
> Java C&I is perfectly within its rights to describe how these
> annotations are to be handled by the SCA Java runtime. It's certainly
> preferrable if these things were to be present, but I don't see it as
> required, and given that it's impossible to do so, we're stuck.
>
> Dave Booz
> STSM, BPM and SCA Architecture
> Co-Chair OASIS SCA-Policy TC and SCA-J TC
> "Distributed objects first, then world hunger"
> Poughkeepsie, NY (845)-435-6093 or 8-295-6093
> e-mail:booz@us.ibm.com
>
> Inactive hide details for Mike Edwards ---01/22/2009 10:01:29 AM---Yang
> Lei, Thanks for producing this proposal. In general iMike Edwards
> ---01/22/2009 10:01:29 AM---Yang Lei, Thanks for producing this
> proposal. In general it looks very good.
>
> From:                  
> Mike Edwards <mike_edwards@uk.ibm.com>
>
> To:                  
> sca-j@lists.oasis-open.org
>
> Date:                  
> 01/22/2009 10:01 AM
>
> Subject:                  
> Re: [sca-j] ISSUE 27 - Security Annotations in generated Component Type
> - proposal comments
>
>
> ------------------------------------------------------------------------
>
>
>
>
> Yang Lei,
>
> Thanks for producing this proposal. In general it looks very good.
>
> Some comments inline as *<mje>...</mje>*
>
> Yours, Mike.
>
> Strategist - Emerging Technologies, SCA & SDO.
> Co Chair OASIS SCA Assembly TC.
> IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
> Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431
> Email: mike_edwards@uk.ibm.com
> From:                  Yang Lei <yanglei@us.ibm.com>
> To:                  sca-j@lists.oasis-open.org
> Date:                  21/01/2009 22:16
> Subject:                  [sca-j] ISSUE 27 - Security Annotations in generated Component
> Type - proposal
>
>
>
> ------------------------------------------------------------------------
>
>
>
> Here is the proposal for issue 27:
> _http://www.osoa.org/jira/browse/JAVA-27_.
>
> The highlights of the proposal:
>
> 1. Instead of defining SCA security implementation policy annotations,
> point to JSR 250 security annotations *
> <mje>* *
> I'm OK with this proposal.* *
>
> I think that there is a need to spell out the mapping of the annotations
> to the intents declared by the* *
> Policy spec. It may seem obvious, but to be normative, you have to state
> it explicitly.* *
>
> This should be in 10.6.2 I think.* *
> </mje>*
>
> 2. Not generating componentTypes for the above annotations, due to two
> major reasons:
>
>                       # some of the annotations can apply onto the
>                         methods level, while component type definition
>                         does not have operational level any more.
>                       # if we did generate the information into
>                         component type, we also need to generate the
>                         policysets to apply the policy...
>
> *<mje>* *
> I don't agree with this. If they dont turn up in the componentType, then
> in effect they are useless - or else you are proposing* *
> a second mechanism for transmitting information from the implementation
> to the using <component/>* *
>
> Any annotations on method or class level MUST turn up in the component
> type.* *
>
> Annotations below the method level MUST be placed on the interface
> class. The annotations then turn up in the componentType* *
> as part of the interface declaration in the componentType.* *
>
> I think that this approach works...* *
> </mje>*
>
> 3. Also added are the other annotations that is missing from section 8,
> related to 10.3 Application intent annotations:
>
> @Authentication
> @Confidentiality
> @Integrity
> @Intent
> @PolicySets
> @Qualifier
> @Requires
>
> All the changes are under 8.2, 8.5, 8.15, 8.19, 8.22, 8.25, 10.6.2,
> 10.6.2.1. *
> <mje>excellent</mje>*/
>
> (See attached file: sca-javacaa-1.1-spec-cd01-rev4a-Issue27.doc)(See
> attached file: sca-javacaa-1.1-spec-cd01-rev4a-Issue27.pdf)/
>
>
> Thanks Dave for the review and comments earlier.
>
> Regards,
>
> Yang Lei
>
> WebSphere SCA Feature Pack Development -- SCA Architect
> Phone: (919) 543 8887 T/L 441-8887
> e-mail: yanglei@us.ibm.com
>
> SCA Feature Pack:
> _http://washome.austin.ibm.com/xwiki/bin/view/SCA2Team/WebHome_
> RTP Technical Vitality:
> _http://swgcomm.bluehost.ibm.com/siteFiles/labs.html?location=SEUS&type=cluster_
> <
http://swgcomm.bluehost.ibm.com/siteFiles/labs.html?location=SEUS&type=cluster>
> WebSphere Lab Advocate for Royal Bank of Scotland
> [attachment "sca-javacaa-1.1-spec-cd01-rev4a-Issue27.doc" deleted by
> Mike Edwards/UK/IBM] [attachment
> "sca-javacaa-1.1-spec-cd01-rev4a-Issue27.pdf" deleted by Mike
> Edwards/UK/IBM]
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  Follow this link to all your TCs in OASIS at:_
> __https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php_
>
>
>
>
> ------------------------------------------------------------------------
>
> /Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU/
>
>
>
>
>
>
> ------------------------------------------------------------------------
>
> /Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU/
>
>
>
>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  Follow this link to all your TCs in OASIS at:
>
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 



---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail.  Follow this link to all your TCs in OASIS at:

https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 








Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU





GIF image

sca-javacaa-1.1-spec-cd02+Issue27.pdf

sca-javacaa-1.1-spec-cd02+issue27.doc



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]